Systems and methods for fast and precise frequency estimation

ABSTRACT

Systems and methods are provided for fast and precise estimation of frequency with relatively minimal sampling and relatively high tolerance to noise.

BACKGROUND

Frequency estimation systems are an important subsystem of communication, navigation, radar and various other engineering systems. In some cases, the ability to perform relatively efficient and precise estimation of frequency may be a critical component in system design. Indeed, an inability to perform relatively efficient and precise estimation may significantly limit the performance of these systems as measured by various metrics of performance. For example, in high dynamic global positioning satellite (GPS) receiver applications, effectively acquiring and tracking the GPS carrier signal under dynamic conditions may limit the performance and applicability of these receivers to various applications. For this reason, various architectures suited to such applications have been previously proposed that acquire and track the GPS carrier under dynamic conditions, with the various different methods having a variety of limitations in terms of signal-to-noise ratio, initial frequency uncertainty, and other metrics of performance.

In terms of communication systems, precise frequency and phase may be important in communication systems involving coherent modulation techniques such as multiple quadrature amplitude modulation (MQAM) and multiple phase shift keying (MPSK). In certain communication applications, techniques, such as square law loop or Costas type loop, are used to derive the carrier frequency and phase from modulated signals, or a pilot signal is used which is tracked. The use of square law loop or Costas type loop result in significant loss in terms of phase noise of the reference carrier and phase ambiguity problems associated with phase ambiguity in the carrier phase equal to integer multiple of 2π/M for the MPSK signal. The use of pilot carrier results in a loss of signal power because a significant part of available power is used up in the pilot. The ability to provide fast and accurate frequency and phase estimates at very low signal-to-noise ratios (SNRs) may reduce the loss due to pilot carrier to an insignificant value.

More recently, precise and fast frequency acquisition and tracking have become increasingly important with the evolution of the Orthogonal Frequency Division Multiplexing (OFDM) in mobile communication systems. The OFDM modulation scheme may reduce problems of inter symbol interference (ISI) caused by multipath propagation. It may also exhibit relatively high performance in selective fading environments. Due to these and other features, OFDM has become part of various standards such as Worldwide Interoperability for Microwave Access (WiMax). Because OFDM is based on the orthogonality among various subcarrier signals, it is very important that this orthogonality be maintained when these subcarriers are received at the receiver. However, the mobile wireless channels introduce frequency offsets which cause disruption of the orthogonality among the subcarriers resulting in mutual interference among the various subcarriers. Therefore, it is desirable to precisely estimate such frequency offsets and correct them to avoid problems associated with intercarrier interference. The offsets may be functions of time and may vary with different subcarriers. Therefore, it is further desirable that precise estimation of the frequency offset be made with a minimum requirement on the estimation time and SNR, which is also limited in systems involving error correction coding techniques.

Some of the previous techniques for frequency estimation are based on the extended Kalman filter (EKF). In these techniques, the state of the Kalman filter is comprised of the signal phase, frequency and possibly one or more derivatives of the frequency, and the measurement is a nonlinear function of the state vector. In this approach, the measurement function is linearized about the current estimate of the state. Thus the technique based on EKF is more appropriate in the tracking mode when the initial estimate of the state is close to the true state and under a relatively high signal-to-noise ratio condition. However, when fast acquisition is required starting with a relatively high frequency uncertainty and/or in low signal-to-noise ratio conditions, the EKF based methods may not meet the required performance as they have relatively high thresholds for required signal power to noise density ratio (P/N₀). Therefore, if the P/N₀ ratio is below the threshold, the EKF may fail to converge and instead it may diverge. In other words, when the EKF diverges, the state estimation error, instead of converging to relatively small value as more and more measurement samples are processed, increases with the number of samples processed and approaches a large estimation error. The EKF estimator also results in a phase locked loop (PLL) configuration with time-varying loop filter coefficients and is thus also an “optimum” PLL. Thus the PLLs have similar limitations as the EKFs.

In fast Fourier transform (FFT) methods for frequency estimation, the N-point Fourier transform of a signal is evaluated, and the peak of the absolute values of the FFT is searched. The FFT frequency corresponding to the peak is taken as the estimate of the unknown frequency associated with the signal. The FFT method has two limitations. First, the estimation error is of the order of the FFT resolution frequency that is equal to (2B/N) where 2B is the interval of frequency uncertainty. Second, in a relatively low SNR condition, selection of the peak among N noisy outputs of the transform involves detection errors corresponding to a large estimation error in the range of −B to B Hz. Increasing the sampling (N) reduces the resolution frequency; however, concurrently it also increases the probability of detecting the incorrect peak thus exhibiting threshold effects with respect to the SNR level.

The techniques that have been used in the estimation of the frequency offset in OFDM systems, based on the assumption that the offset is same for all the sub-carriers, involve correlating the received signal with a reference signal and thereby determining the relative phase between the two signals. By estimating the relative phase at two different time instances and dividing the difference between the two relative phase differences by the time difference provides the frequency estimate. The correlation operation requires that the integration interval T₁ for the correlation operation may be much smaller than the inverse of the offset frequency f_(a) else the signal amplitude at the correlator output will be small and close to zero if T₁≅=1/f_(a). On the other hand, selection of a small T₁ leads to relatively large noise at the integrator output which may result in a noisy phase estimate. Differencing the noisy phase estimates may further accentuate the estimation error. Thus the correlation based approach has limitations in terms of the magnitude of the frequency offset and the SNR condition under which it will provide a satisfactory result.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items; however, various embodiments may utilize elements and/or components other than those illustrated in the figures.

FIG. 1 is a block diagram illustrating an example architecture for providing signal parameter estimation, in accordance with embodiments of the disclosure.

FIG. 2 is a block diagram illustrating an example architecture for providing signal parameter estimation, in accordance with embodiments of the disclosure.

FIG. 3 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 4 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 5 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 6 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 7 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 8 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 9 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 10 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2, in accordance with embodiments of the disclosure.

FIG. 11 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 with comparisons to theoretical limits, in accordance with embodiments of the disclosure.

FIG. 12 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 with comparisons to theoretical limits, in accordance with embodiments of the disclosure.

FIG. 13 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 with comparisons to theoretical limits, in accordance with embodiments of the disclosure.

FIG. 14 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 with comparisons to theoretical limits, in accordance with embodiments of the disclosure.

FIG. 15 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 applied to a signal with a time-varying frequency, in accordance with embodiments of the disclosure.

FIG. 16 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 applied to a signal with a time-varying frequency, in accordance with embodiments of the disclosure.

FIG. 17 shows a plot of example simulation results derived from the architectures of FIGS. 1 and 2 applied to a signal with a time-varying frequency, in accordance with embodiments of the disclosure.

FIG. 18 is a block diagram illustrating an example architecture for providing signal parameter estimation, including frequency derivative estimates and time-varying frequency estimates, in accordance with embodiments of the disclosure.

FIG. 19 shows a plot of example simulation results derived from the architecture of FIG. 18, in accordance with embodiments of the disclosure.

FIG. 20 shows a plot of example simulation results derived from the architecture of FIG. 18, in accordance with embodiments of the disclosure.

FIG. 21 is a block diagram illustrating an example architecture for providing signal parameter estimation for multi-frequency signals, in accordance with embodiments of the disclosure.

FIG. 22 is a block diagram illustrating an example architecture including a bank of filters for providing signal parameter estimation for multi-frequency signals, in accordance with embodiments of the disclosure.

FIG. 23 shows a plot of example simulation results derived from the architectures of FIGS. 21 and 22, in accordance with embodiments of the disclosure.

FIG. 24 shows a plot of example simulation results derived from the architectures of FIGS. 21 and 22, in accordance with embodiments of the disclosure.

FIG. 25 shows a plot of example simulation results derived from the architectures of FIGS. 21 and 22, in accordance with embodiments of the disclosure.

FIG. 26 is a block diagram illustrating an example architecture for providing signal parameter estimation using correlation detection, in accordance with embodiments of the disclosure.

FIG. 27 is a block diagram illustrating an example second stage adaptive Kalman filter as included in the example architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 28 is a block diagram illustrating an example correlation threshold detector as included in the example architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 29 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 30 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 31 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 32 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 33 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 34 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 35 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 36 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 37 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 38 shows a plot of example simulation results derived from the architecture of FIG. 26, in accordance with embodiments of the disclosure.

FIG. 39 is a block diagram illustrating an example architecture for providing signal parameter estimation using correlation detection in a low signal-to-noise environment, in accordance with embodiments of the disclosure.

FIG. 40 is a block diagram illustrating an example estimator, such as a third stage estimator of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 41 is a block diagram illustrating an example correlation block as included in the example architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 42 is a block diagram illustrating an example architecture for providing signal parameter estimation using correlation detection in a low signal-to-noise environment for a multi-frequency signal, in accordance with embodiments of the disclosure.

FIG. 43 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 44 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 45 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 46 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 47 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 48 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 49 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 50 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 51 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 52 shows a plot of example simulation results derived from the architecture of FIG. 39, in accordance with embodiments of the disclosure.

FIG. 53 illustrates an example computing system configured to execute any of the example architectures and/or algorithms disclosed herein, in accordance with embodiments of the disclosure.

DETAILED DESCRIPTION

Embodiments of the disclosure are described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the disclosure are shown. This disclosure may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like numbers refer to like elements throughout.

Embodiments of the disclosure are directed to, among other things, estimation of parameters associated with a signal. The disclosure provides a variety of architectures based on Adaptive Kalman filter (AKF) and Fast Fourier Transform (FFT) methods. These various architectures provide relatively fast and precise frequency estimates along with estimates of amplitudes, and phase for the case of single and multiple carriers present in the received signal. The various architectures operate on a vast range of signal-to-noise ratios wherein those operating in low signal-to-noise ratio conditions involve relatively higher computational effort such that over a relatively large range of SNRs, a high precision of estimation is achieved. The various architectures presented also provide precise estimates for the case involving significant frequency derivatives, wherein the frequency derivatives may also be estimated from the received signal and accurate tracking of time-varying frequency is achieved.

The various architectures presented in this disclosure may further be used for single or multiple sinusoidal signals present in the sampled received signal. These architectures include one or more adaptive Kalman filters (AKF). The adaptive Kalman filter is comprised of two coupled Kalman filters. The first Kalman filter (KF) is the state update Kalman filter (SUKF) that may estimate a state vector x(k) that may include in-phase and quadrature components of a sinusoidal signal received in the presence of noise. The SUKF may provide the filtered estimates of the in-phase and quadrature components of the sinusoidal signal, thus filtering out the additive noise from the measurements. The SUKF is based on a state model, where the elements of a state transition matrix associated with the state model are the cos and sin functions of the normalized frequency ω₀=2πf_(a)/F_(s) where f_(a) is the frequency of the received signal and F_(s) is the sampling frequency. Based on the information provided by the SUKF, the second Kalman filter, termed the parameter update Kalman filter (PUKF), provides the estimates of a parameter vector β whose elements are cos(ω₀) and sin(ω₀). Based on a delayed filtered parameter vector estimate {circumflex over (β)}(k−1/k−1), the state transition matrix for the SUKF is generated. The two Kalman filters operate in a back to back manner providing the state and the parameter vector estimates {circumflex over (x)}(k/k) and {circumflex over (β)}(k/k) for k=1, 2, . . . . From the state and the parameter vector estimates, the estimates for the frequency, phase, and amplitude are obtained in terms of simple functions of the state and parameter vector estimates. Unlike the EKF, the AKF does not involve any linearization; therefore, it provides fast frequency estimates when the initial frequency offset is relatively large and under medium SNR conditions. Simulations show that for an SNR of 7 dB, an RMS frequency estimation error of about 3 Hz is obtained in about 10 samples when the initial frequency is selected randomly from the range of −50 to +50 Hz and the sampling frequency is 400 Hz. With an increasing number of samples, the RMS error tends to be zero.

In the case of signals with randomly time-varying frequency with independent incremental change at each sample, the AKF may closely track the frequency with the estimation error close to the random independent change in frequency at each time instance. However, in the case of significant frequency derivatives that may themselves be slowly varying functions of time, the disclosure presents another embodiment wherein the frequency derivatives are explicitly estimated, thereby achieving a rapid acquisition followed by close tracking of frequency with relatively small error. Another embodiment of the disclosure presents acquisition and tracking of multiple, N sinusoidal signals present in the received signal, wherein the various frequencies may also have significant frequency derivatives. In this embodiment, the estimator referred to as the adaptive Kalman filter-multiple frequency (AKF-MF), the state update Kalman filter (SUKF) may have dimension 2N and the PUKF may have N KFs with each estimating a parameter vector of dimension 2. In yet another embodiment, the input signal is first filtered by a bank of M polyphase filters or the M FFT filters followed by the AKF-MFs thus resulting in the reduction of the dimension of the SUKF. The estimates from the M AKF-MFs are appropriately combined to provide the final estimates of the frequencies, frequency derivatives, amplitudes and phase of the N sinusoidal signals present in the received signal.

As the SNR is reduced below some value, there is a nonzero probability that the estimates do not converge to small values that are of the order of that predicted from the theoretical Cramer-Rao (C-R) bound. To avoid this possibility, in another embodiment of the disclosure, the input signal, or a segment thereof, is correlated with the complex exponential function of frequencies equal to the estimate provided by the AKF-MF. If the correlation values are not above a certain bound in magnitude, the AKF-MF is rerun with different initial frequency estimates. The process is repeated until a threshold condition is satisfied or the number of trials exceeds a specified number. At the end of the first estimation step, the input signal is reprocessed with N individual single frequency KFs, referred to herein as AKF-SFs, with their initial frequencies provided by the first stage estimation. The second stage may also involve processing of the input signal in segments and the operation of frequency shift at the end of processing each segment and reprocessing each segment multiple times such that the frequency to be estimated by the AKF-SF approaches zero at the end of each segment processing, and the estimates from adaptive Kalman filter sub-systems (AKF-SSs) are accumulated to provide final frequency estimates for the N input frequencies along with other parameters of interest. Simulation examples show that the use of this embodiment results in a root mean squared (RMS) frequency estimation error obtained with 50 random frequency selections in the range of −100 to 100 Hz, and with 100 simulation runs for each such frequency selection, of about 3 Hz for an SNR of 7 dB and in 10 input signal samples with no outliers. This compares to about a 2 Hz RMS theoretical C-R lower bound on the RMS error.

Another embodiment of the disclosure, for the case of very low SNRs (˜−10 dB), involves three stages of estimation. In the first stage, the input signal may be provided at the input to an M-point FFT with M≧N where N is the number of frequencies in the input signal. The FFT may provide, at its output, an estimate of average power present at the M FFT frequencies. A frequency selector block may select N_(f)≦M frequencies from the M FFT frequencies corresponding to the highest average power levels. The selected N_(f) frequencies may be inputted to a bank of N_(f) AKF-SS that processes the input signal to arrive at the final frequency estimates f_(m) ^(K), m=0, 1, . . . , N_(f)−1. The average power present at the N_(f) frequencies may be evaluated by correlation. For the case of N equal to 1, two frequencies out of the N_(f) frequencies f_(m) ^(K) with the highest power levels may be selected and their corresponding respective values may be compared to threshold values. If the threshold condition is satisfied, the final estimate f^(I) from the stage 2 of estimation is determined from the two selected frequencies. If the threshold condition is not satisfied, the first and second processes of the estimation are repeated with a frequency offset introduced in the input signal. In the third process of the estimation, the input signal may be shifted in frequency by a complex exponential function at frequency f^(I). The resulting frequency shifted signal may be averaged over an appropriate interval, and the signal thus obtained may be reprocessed by the AKF to achieve the final estimate of the frequency f_(a). For the case of N>1, instead of selecting two frequencies in the second stage, N frequencies with the highest power may be selected. The N estimates from the third stage may be provided to the third stage that is comprised of N AKFs, one for each of the N frequencies. Simulations show that this architecture provides very small frequency estimation error even at very low SNRs. For example, at an SNR of −10 dB, an RMS error equal to a fraction of 1 Hz is achieved in about 200 samples with the frequency selected randomly from the range of −200 to 200 Hz. While the disclosure presents various comprehensive architectures for the estimation of frequency and other parameters of multiple sinusoidal signals present in the input signal, these architectures can be adapted to a variety of applications that involve frequency estimation in one or more forms.

Frequency Estimation with Adaptive Kalman Filter (AKF)

Various embodiments of the disclosure describe the adaptive Kalman filter (AKF) estimator and the FFT and correlation based estimators for fast and precise estimation of the frequencies, amplitudes and phases of multiple sinusoidal signals received in the presence of noise when the interval of observation is relatively limited. The first embodiment of the disclosure describes the adaptive Kalman filter (AKF) estimator for the case of a single sinusoidal signal present in the presence of noise. The frequency of the signal may remain constant over the interval of observation or may have some random time-varying component associated with it. In alternative embodiments of the AKF estimator, both the frequency and the frequency derivative may be estimated when there is a significant non-zero frequency derivative present during the observation interval, and the derivative itself may be a constant or varying slowly during the interval of observation. Various embodiments of different computational complexity are presented for signal-to-noise ratios ranging over medium to relatively very low values.

Estimation of Single Frequency

The embodiment of the disclosure for the AKF estimator for estimating the frequency, amplitude and phase of a signal, including a single sinusoidal signal, is disclosed first. In this case, the intermediate frequency signal of some unknown but constant frequency received in the presence of band pass white Gaussian noise over an interval of time of length T₀ is given by

z _(IF)(t)=A cos(2π(f _(c) +f _(a))t+φ)+n(t);0≦t≦T ₀  (1)

In (1), f_(c) is known IF frequency, and the unknown frequency f_(a) has a value in the range of −B to B Hz. The parameters A and (p are the amplitude and phase, respectively, both of which are also unknown. The band pass white noise n(t) may have a one-side noise power spectral density of N₀ W/Hz. Thus the input signal to noise power ratio is A²/(4N₀B), and the signal power to noise power spectral density ratio is equal to A²/(2N₀) with the signal power A²/2. The corresponding base band model obtained by the down conversion of the IF signal to complex baseband is given by

z _(i)(t)=A cos(ω_(a) t+ω)+n _(i)(t)  (2a)

z _(q)(t)=A sin(ω_(a) t+ω)+n _(q)(t)  (2b)

In (2a,2b) z_(i)(t) and z_(q)(t) are the in-phase and quadrature baseband signals and ω_(a)=2πf_(a). The baseband noise processes n_(i)(t) and n_(q)(t) are independent white noise processes with the two-sided power spectral density N₀. This embodiment discloses an adaptive Kalman filter (AKF) estimator to estimate the unknown parameters A, ω_(a), and φ with minimum possible errors such that the performance is close to theoretical bounds on such errors. Each of the baseband signals has power A²/2 with the total baseband signal power equal to A². In the embodiment, the signal power refers to the total baseband power.

The signals z_(i)(t) and z_(q)(t) are sampled at a sampling rate F, that is at least two times the maximum possible value of the unknown frequency f_(a)=ω_(a)/2π. The corresponding discrete time version of the measurements is given by

z _(i)(k)=A cos(kω ₀+ω)+n _(i)(k)  (3)

z _(q)(k)=A sin(kω ₀+ω)+n _(q)(k);k=0,1, . . . ,N _(s)  (4)

In equations (3) and (4), k denotes the discrete time index, and ω₀=ω_(a)T_(s) is the digital frequency in radians (rad), with T_(s)=1/F_(s), denoting the sampling period. The sampled noise sequences n_(i)(k) and n_(q)(k) are independent random sequences with zero mean and variance σ_(n) ²=N₀/T_(s). For the purpose of estimation of the unknown parameters A, ω₀ and φ by the AKF, the state variables x₁(k) and x₂(k) are defined as

x ₁(k)=A cos(kω ₀+φ)  (5)

x ₂(k)=A sin(kω ₀+φ)  (6)

Using trigonometric expansion yields

$\begin{matrix} {{{z(k)} = {\begin{bmatrix} {z_{i}(k)} \\ {z_{q}(k)} \end{bmatrix} = {{{Hx}(k)} + {n(k)}}}};{{n(k)} = \begin{bmatrix} {n_{i}(k)} \\ {n_{q}(k)} \end{bmatrix}}} & (14) \end{matrix}$

From (5) (7), the following state update equation for the first state component x₁(k) is obtained

x ₁(k+1)=β₁ x ₁(k)−β₂ x ₂(k)  (8)

where β₁ and β₂ are parameters given by

β₁=cos(ω₀);β₂=sin(ω₀)  (9)

Similarly expansion of x₂(k+1) yields

$\begin{matrix} {{x\left( {k + 1} \right)} = {{Fx}(k)}} & (12) \\ {{{x(k)} = \begin{bmatrix} {x_{1}(k)} \\ {x_{2}(k)} \end{bmatrix}};{F = \begin{bmatrix} \beta_{1} & {- \beta_{2}} \\ \beta_{2} & \beta_{1} \end{bmatrix}}} & (13) \end{matrix}$

From (5), (6), (8) and (10) one obtains

x ₂(k+1)=β₂ x ₁(k)+β₁ x ₂(k)  (11)

Equations (8) and (11) may be expressed in the following matrix vector form

$\begin{matrix} \begin{matrix} {{x_{1}\left( {k + 1} \right)} = {A\mspace{14mu} {\cos \left( {{\omega_{0}\left( {k + 1} \right)} + \phi} \right)}}} \\ {= {{A\mspace{14mu} {\cos \left( {{\omega_{0}k} + \phi} \right)}{\cos \left( \omega_{0} \right)}} - {A\mspace{14mu} {\sin \left( {{\omega_{0}k} + \phi} \right)}{\sin \left( \omega_{0} \right)}}}} \end{matrix} & (7) \end{matrix}$

The measurement equations (3) and (4) for the AKF estimator may also be written in the matrix vector form

$\begin{matrix} \begin{matrix} {{x_{2}\left( {k + 1} \right)} = {A\mspace{14mu} {\sin \left( {{\omega_{0}\left( {k + 1} \right)} + \phi} \right)}}} \\ {= {{A\mspace{14mu} {\sin \left( {{\omega_{0}k} + \phi} \right)}{\cos \left( \omega_{0} \right)}} + {A\mspace{14mu} {\cos \left( {{\omega_{0}k} + \phi} \right)}{\sin \left( \omega_{0} \right)}}}} \end{matrix} & (10) \end{matrix}$

In (14), the measurement matrix H is equal to the 2×2 identity matrix.

FIG. 1 is a block diagram illustrating an example adaptive Kalman filter (AKF) 100 in accordance with embodiments of the disclosure. In one aspect, the AKF 100 may be configured for the estimation of the frequency f_(a), amplitude A and phase (p of the received signal z_(IF)(t) from the sampled noisy in-phase and quadrature signals z_(i)(k) and z_(q)(k) in (3)-(4). The AKF may include two coupled Kalman filters. The first Kalman filter (KF) may be the state update Kalman filter (SUKF) 102 that may estimate the state vector x(k) that may include the in-phase and quadrature components of the sinusoidal signal received in the presence of noise. The SUKF 102 may provide the filtered estimates of the in-phase and quadrature components of the sinusoidal signal, thus filtering out the additive noise from the measurements. The output of the SUKF 102 may be based on the state model, wherein the elements of the state transition matrix are the cos and sin functions of the normalized frequency ω₀=2πf_(a)/F_(s) where f_(a) is the frequency of the received signal and F_(s) is the sampling frequency. Based on the information provided by the SUKF 102, the second Kalman filter, termed the parameter update Kalman filter (PUKF) 106, may provide the estimates of a parameter vector β with elements cos(ω₀) and sin(ω₀). In one aspect, the SUKF 102 may provide its output, including, for example, the state vector estimate {circumflex over (x)}(k/k) and the SUKF gain K(k) to the PUKF 106 via a state KF to parameter KF coupling 104. Based on the delayed filtered parameter vector estimate {circumflex over (β)}(k−1/k−1), the state transition matrix for the SUKF 102 may be generated.

The two Kalman filters 102, 106, therefore, operate in a back-to-back manner providing the state and the parameter vector estimates {circumflex over (x)}(k/k) and {circumflex over (β)}(k/k) for k=1, 2, . . . . From the state and the parameter vector estimates, the estimates for the frequency, phase, and amplitude may be obtained in terms of simple functions of these estimates by an estimator of signal parameter 110. Unlike an EKF, the AKF 100 does not involve any linearization. Therefore, it may provide fast frequency estimates when the initial frequency offset is relatively large and under medium SNR conditions.

It will be appreciated that one or more of the constituent SUKF 102, PUKF 106, and other elements 104, 108, and 110 of the AKF 100 may be implemented in a variety of mechanisms, including, for example, on a processor running instructions to implement the AKF 100. In one aspect, the elements of the AKF may be implemented as modules of a software application stored on one or more memories and accessible by one or more processors configured to execute constituent instructions of the modules and/or software application. Alternatively, each of the elements of the AKF may be implemented with discrete electrical elements communicatively coupled therebetween. These elements may be digital elements incorporating hardware, software, or both hardware and software.

The state update Kalman filter 102 equations for the estimation of the state vector x(k) for the case of known matrix F are given by

{circumflex over (x)}(k/k)={circumflex over (x)}(k/k−1)+K(k){tilde over (z)}(k/k−1)  (15a)

{tilde over (z)}(k/k−1)=z(k)−H(k){circumflex over (x)}(k/k−1)  (15b)

{circumflex over (x)}(k/k−1)=F(k−1){circumflex over (x)}((k−1/k−1)  (15c)

S(k)=H(k)P(k/k−1)H ^(T)(k)+R(k)  (15d)

K(k)=P(k/k−1)H ^(T)(k)S ⁻¹(k)  (15e)

P(k/k)=P(k/k−1)−P(k/k−1)H ^(T)(k)S ⁻¹(k)H(k)P(k/k−1)  (15f)

P(k+1/k)=F(k)P(k/k)F ^(T)(k)+G(k)Q(k)G ^(T)(k)  (15g)

In equations (15a-15g) {circumflex over (x)}(k/k) denotes the filtered estimate of the state x(k); {circumflex over (x)}(k/k−1) denotes the predicted estimate of x(k) based on measurements up to time k−1, i.e., z(0), z(1), . . . , z(k−1); {tilde over (z)}(k/k−1) is the prediction error; and K(k) is the Kalman filter gain. The matrices P(k/k) and P(k/k−1) are the error covariance matrices for the filtered and predicted estimates respectively of x(k). In general, the matrices F(k) and H(k) may be time-varying; however, in application to equations (12)-(14), these are independent of k, and the matrix G(k) in (15g) is equal to the identity matrix. The process covariance matrix Q is zero for the equation (12). However, to increase the robustness of the algorithm, Q may be set to some small non singular matrix. In an exponentially data weighted version of the Kalman filter, which has a robustness against certain model inaccuracies, the equation (15f) is replaced by

P(k+1/k)=λ⁻¹ F(k)P(k/k)F ^(T)(k)+G(k)Q(k)G ^(T)(k)  (15h)

In equation (15h), the parameter X is the exponential data weighting coefficient with 0<λ<1. The value of λ may be very close to 1, e.g., 0.99 and 1/(1−λ) is the approximate length of data memory. Thus with λ=0.99 the state update roughly depends only on the previous 100 measurements.

From the definitions of the state vector x(k) in (5)-(6), the phase θ(k) at time k is given by

θ(k)=tan₂ ⁻¹(x ₂(k),x ₁(k))  (16)

where tan₂ ⁻¹ denotes the 4 quadrant inverse tangent function, Similarly the phase estimate is given in terms of the filtered estimate of the state x(k) by

θ(k)=tan₂ ⁻¹({circumflex over (x)} ₂(k/k),{circumflex over (x)} ₁(k/k))  (17)

The phase estimation error is obtained as

{circumflex over (θ)}(k)=θ(k)−{circumflex over (θ)}(k)  (18)

The filtered estimate of the amplitude A is also obtained from the filtered estimate of the state x(k) as

Â(k)=[{circumflex over (x)} ₁ ²(k/k)+{circumflex over (x)} ₂ ²(k/k)]^(1/2)  (19)

A smoothed estimate of the amplitude is given by

$\begin{matrix} {{\hat{A}}_{S} = \left\lbrack {\frac{1}{N_{S} - N_{0}}{\sum\limits_{k = {N_{0} + 1}}^{N_{s}}\; {{\hat{A}}^{2}(k)}}} \right\rbrack^{1\text{/}2}} & (20) \end{matrix}$

where N_(s) is the total number of samples and N₀ is the number of samples that are discarded in the computation of the smoothed estimate of A.

The matrix F in the Kalman filter update equations (15) requires knowledge of the parameters β₁ and β₂ which are unknown and need to be estimated. In the adaptive Kalman filter (AKF) 100 of the embodiment of this disclosure, these parameters are estimated from {circumflex over (x)}(k/k).

The equations (8) and (11) may be rewritten in the following equivalent form

$\begin{matrix} {{x_{1}\left( {k + 1} \right)} = {\left\lbrack {{x_{1}(k)} - {x_{2}(k)}} \right\rbrack \begin{bmatrix} \beta_{1} \\ \beta_{2} \end{bmatrix}}} & (21) \\ {{x_{2}\left( {k + 1} \right)} = {\left\lbrack {{x_{2}(k)}\mspace{14mu} {x_{1}(k)}} \right\rbrack \begin{bmatrix} \beta_{1} \\ \beta_{2} \end{bmatrix}}} & (22) \end{matrix}$

Replacing the state x(k) by its filtered estimate {circumflex over (x)}(k/k), the equations (21) and (22) may be expressed in the following matrix vector form

$\begin{matrix} {{{{z_{p}(k)} \equiv \begin{bmatrix} {{\hat{x}}_{1}\left( {k\text{/}k} \right)} \\ {{\hat{x}}_{2}\left( {k\text{/}k} \right)} \end{bmatrix}} = {{{H_{p}(k)}{\beta (k)}} + {n_{p}(k)}}};} & (23) \\ {{H_{p}(k)} = \begin{bmatrix} {{\hat{x}}_{1}\left( {k - {1\text{/}k} - 1} \right)} & {- {{\hat{x}}_{2}\left( {k - {1\text{/}k} - 1} \right)}} \\ {{\hat{x}}_{2}\left( {k - {1\text{/}k} - 1} \right)} & {{\hat{x}}_{1}\left( {k - {1\text{/}k} - 1} \right)} \end{bmatrix}} & (24) \end{matrix}$

In equations (23) and (24), the suffix on the variables z, H, n, etc., signifies that these variables relate to the estimation of the parameter β. The noise vector n_(p) accounts for the error in the estimate of the state x(k) and has its covariance matrix equal to R_(p)(k) that is determined from the Kalman filter update equations (15). In case of fixed frequency, the parameter vector β is not a function of k. However, to include a more general case, it may be assumed to vary according to the following dynamics equation

β(k+1)=F _(p)β(k)+G _(p)(k)ξ_(p)(k)  (25)

where F_(p) and G_(p) are some appropriate matrices and ξ_(p)(k) denotes the process noise, which may be zero mean and white, or otherwise spread across a relatively wide spectrum, with covariance matrix Q_(p). The Kalman filter update equations for the estimation of the parameter β(k) at the parameter update Kalman filter 106 from equations (23) and (25) is given by

{circumflex over (β)}(k/k)={circumflex over (β)}(k/k−1)+K _(p)(k){tilde over (z)} _(p)(k/k−1)  (26a)

{tilde over (z)} _(p)(k/k−1)=z _(p)(k)−H _(p)(k){circumflex over (β)}(k/k−1)  (26b)

{circumflex over (β)}(k/k−1)=F _(p)(k−1){circumflex over (β)}(k−1/k−1)  (26c)

S _(p)(k)=H _(p)(k)P _(p)(k/k−1)H _(p) ^(T)(k)+R _(p)(k)  (26d)

K _(p)(k)=P _(p)(k/k−1)H _(p) ^(T)(k)S _(p) ⁻¹(k)  (26e)

P _(p)(k/k)=P _(p)(k/k−1)−P _(p)(k/k−1)H _(p) ^(T)(k)S _(p) ⁻¹(k)H(k)P _(p)(k/k−1)  (26f)

P _(p)(k+1/k)=F _(p)(k)P _(p)(k/k)F _(p)(k)+G _(p)(k)Q _(p)(k)G _(p)(k)  (26g)

In an exponentially data weighted version of the parameter update Kalman filter 106, the equation (26g) is replaced by

P _(p)(k+1/k)=λ_(p) ⁻¹ F _(p)(k)P _(p)(k/k)F _(p) ^(T)(k)+G _(p)(k)Q _(p)(k)G _(p) ^(T)(k)  (26h)

In the Kalman filter equation (15) the matrix F(k−1) is replaced by its estimate {circumflex over (F)}(k−1/k−1) given by

$\begin{matrix} {{\hat{F}\left( {k - {1\text{/}k} - 1} \right)} = \begin{bmatrix} {{\hat{\beta}}_{1}\left( {k - {1\text{/}k} - 1} \right)} & {- {{\hat{\beta}}_{2}\left( {k - {1\text{/}k} - 1} \right)}} \\ {{\hat{\beta}}_{2}\left( {k - {1\text{/}k} - 1} \right)} & {{\hat{\beta}}_{1}\left( {k - {1\text{/}k} - 1} \right)} \end{bmatrix}} & \left( {26i} \right) \end{matrix}$

The two sets of equations (15) and (26) are updated in an interlaced manner thus, the sequence of estimates are {circumflex over (β)}(k−1/k−1)→{circumflex over (F)}(k−1/k−1)→{circumflex over (x)}(k/k)→{circumflex over (β)}(k/k) for k=1, 2, . . . with some initial estimate for {circumflex over (β)}(0/0) based on some possibly zero initial estimate for the digital frequency ω₀.

In (26h), λ_(p) is the exponential data weighting coefficient with 0<λ_(p)<1. The covariance matrix R_(p) in (26d) may be evaluated as follows. The equations (21) and (22) may be combined to obtain the following equation.

$\begin{matrix} {{{x(k)} = {{H_{pc}(k)}{\beta (k)}}};{{H_{pc}(k)} = \begin{bmatrix} {x_{1}\left( {k - 1} \right)} & {- {x_{2}\left( {k - 1} \right)}} \\ {x_{2}\left( {k - 1} \right)} & {x_{1}\left( {k - 1} \right)} \end{bmatrix}}} & (27) \end{matrix}$

Subtraction of both sides of equation (23) from the respective sides of equation (27) yields

x(k)−{circumflex over (x)}(k/k)=[H _(pc)(k)−H _(p)(k)]β(k)−n _(p)(k);  (28)

From the definitions of the matrices H_(pc)(k) and H_(p)(k), the equation (28) may be written in the following alternative form

$\begin{matrix} {{{{\overset{\sim}{x}\left( {k\text{/}k} \right)} = {{\begin{bmatrix} {{\overset{\sim}{x}}_{1}\left( {k - {1\text{/}k} - 1} \right)} & {- {{\overset{\sim}{x}}_{2}\left( {k - {1\text{/}k} - 1} \right)}} \\ {{\overset{\sim}{x}}_{2}\left( {k - {1\text{/}k} - 1} \right)} & {{\overset{\sim}{x}}_{1}\left( {k - {1\text{/}k} - 1} \right)} \end{bmatrix}\begin{bmatrix} \beta_{1} \\ \beta_{2} \end{bmatrix}} - {n_{p}(k)}}};}{{\overset{\sim}{x}\left( {k\text{/}k} \right)} = {{x(k)} - {\hat{x}\left( {k\text{/}k} \right)}}}} & (29) \end{matrix}$

With the definition of F in (13), one obtains from (29))

{circumflex over (x)}(k/k)=F{circumflex over (x)}(k−1/k−1)−n _(p)(k)  (30)

Thus

n _(p)(k)=F{circumflex over (x)}(k−1/k−1)−{circumflex over (x)}(k/k)  (31)

Now subtraction of (15a) from (12) yields

{circumflex over (x)}((k/k)=F{circumflex over (x)}(k−1/k−1)−K(k){tilde over (z)}(k/k−1)  (32)

From (31) and (32) one obtains the covariance of n_(p)(k) as

R _(p)(k)=E[n _(p)(k)n _(p) ^(T)(k)]=K(k)E[{tilde over (z)}(k/k−1){tilde over (z)} ^(T)(k/k−1)]K ^(T)(k)  (33)

Substitution for z(k) from (14) in (15b) results in

{tilde over (z)}(k/k−1)=H(k){circumflex over (x)}(k/k−1)+n(k)  (34)

As {circumflex over (x)}(k/k−1) and n(k) are uncorrelated due to the independence of noise sequence n(k), the covariance of the prediction error {tilde over (z)}(k/k−1) is given by

E[{tilde over (z)}(k/k−1){tilde over (z)} ^(T)(k/k−1)]=H(k)P(k/k−1)H ^(T)(k)+R(k)=S(k)  (35)

Substitution of (35) in (33) yields the desired covariance matrix as

R _(p)(k)=K(k)S(k)K ^(T)(k)=K(k)=[H(k)P(k/k−1)H ^(T)(k)+R(k)]K ^(T)(k)  (36)

For the case of F_(p)=I, corresponding to the case of time invariant parameter β and G_(p)=0, the Kalman filter equations (26) can be simplified to arrive at the weighted least squares algorithm. With the substitution of F_(p)=I and G_(p)=0 and replacing k by (k−1) in (26h) yields

P _(p)(k/k−1)=λ_(p) ⁻¹ P _(p)(k−1/k−1)  (37)

Substitution of (37) in (26f) yields

P _(p)(k/k)=λ_(p) ⁻¹ P _(p)(k−1/k−1)−λ_(p) ⁻² P _(p)(k−1/k−1)H _(p) ^(T)(k)×{λ_(p) ⁻¹ H _(p)(k)P _(p)(k−1/k−1)H _(p) ^(T)(k)+R _(p)}⁻¹ H _(p)(k)P _(p)(k−1/k−1)  (38)

The equation (38) can be organized in the following compact form

P _(p)(k)=λ_(p) ⁻¹ [P _(p)(k−1)−P _(p)(k−1)H _(p) ^(T)(k)×{H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)+λ_(p) R _(p)}⁻¹ H _(p)(k)P _(p)(k−1)]  (39)

where in equation (39) Pp(k) is a more compact notation for P_(p)(k/k). The Kalman gain K_(p) for the case of constant β may be expressed as

K _(p)(k)=P _(p)(k−1)H _(p) ^(T)(k)[H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)+λ_(p) R _(p)]⁻¹  (40)

Multiplication of (39) by H_(p) ^(T)(k) results in

$\begin{matrix} {{{P_{p}(k)}{H_{p}^{T}(k)}} = {\lambda_{p}^{- 1}\begin{bmatrix} {{{P_{p}\left( {k - 1} \right)}{H_{p}^{T}(k)}} - {{P_{p}\left( {k - 1} \right)}{H_{p}^{T}(k)}\left\{ {{{H_{p}(k)}{P_{p}\left( {k - 1} \right)}{H_{p}^{T}(k)}} + {\lambda_{p}R_{p}}} \right\}^{- 1} \times}} \\ {{H_{p}(k)}{P_{p}\left( {k - 1} \right)}{H_{p}^{T}(k)}} \end{bmatrix}}} & (41) \end{matrix}$

A simplification of (41) yields

P _(p)(k)H _(p) ^(T)(k)=λ_(p) ⁻¹ P _(p)(k−1)H _(p) ^(T)(k){H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)+λ_(p) R _(p)}⁻¹ ×[H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)+λ_(p) R _(p) −H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)]  (42)

From (40) and (42) one obtains

K _(p)(k)=P _(p)(k)H _(p) ^(T)(k)R _(p) ⁻¹  (43)

The weighted least squares algorithm is thus given by

P _(p)(k)=λ_(p) ⁻¹ [P _(p)(k−1)−P _(p)(k−1)H _(p) ^(T)(k)×{H _(p)(k)P _(p)(k−1)H _(p) ^(T)(k)+λ_(p) R _(p)}⁻¹ H _(p)(k)P _(p)(k−1)]  (44a)

K _(p)(k)=P _(p)(k)H _(p) ^(T)(k)R _(p) ⁻¹  (45b)

{circumflex over (β)}(k)={circumflex over (β)}(k−1)+K _(p)(k)[z _(p)(k)−H _(p)(k){circumflex over (β)}(k−1)]  (45c)

In (44), {circumflex over (β)}(k) is the compact notation for {circumflex over (β)}(k/k) in the case of constant β. From the definition of the parameters β₁ and β₂ in (9), the estimate of the digital frequency ω₀ is given by

{circumflex over (ω)}₀=tan₂ ⁻¹({circumflex over (β)}₂(k/k),{circumflex over (β)}₁(k/k))  (46)

with the estimation error in the estimate of the digital frequency ω₀ given by

{tilde over (ω)}₀(k)=ω₀−{circumflex over (ω)}₀(k)  (47)

The estimate and the estimation error for the analog frequency f_(a) given by

{circumflex over (f)} _(a)={circumflex over (ω)}₀ F _(s)/(2π);{tilde over (f)} _(a) =f _(a) −{circumflex over (f)} _(a)  (48)

The set of equations (5), (6), (12)-(15), (17), (19) (20), (23)-(26), (33), (46) and (48) constitute the AKF algorithm for the estimation of the frequency, amplitude and phase of a single sinusoidal signal received in the presence of noise and is referred to as AKFS.

Referring now to FIG. 2, a relatively more detailed block diagram representation of the example AKF 100 is shown. In this representation, the sampled signal z(k) defined in (14) is input to the state vector update Kalman filter 102 that provides the filtered state estimate {circumflex over (x)}(k−1/k−1) at its output computed according to equations (15). The filtered state estimate {circumflex over (x)}(k−1/k−1) is pre-multiplied by the 2×2 matrix {circumflex over (F)}(k−1/k−1) to provide the predicted state estimate {circumflex over (x)}(k/k−1) according to (15c) wherein F(k−1) is replaced by its estimate {circumflex over (F)}(k−1/k−1). The prediction error {tilde over (z)}(k/k−1) is evaluated according to (15b) by subtracting {circumflex over (x)}(k/k−1) from the measurement z(k) where H(k) in (15b) is substituted by the 2×2 identity matrix I₂. Multiplication of {tilde over (z)}(k/k−1) by the Kalman gain K(k) and adding the product to the predicted state estimate {circumflex over (x)}(k/k−1) results in the filtered state estimate {circumflex over (x)}(k/k) at time k which when delayed by one sample is equal to {circumflex over (x)}(k−1/k−1), thus completing the recursive loop for the update of the filtered state estimate. The initial filter state {circumflex over (x)}(0/0) may be selected equal to [0 0]^(T).

Referring still to FIG. 2, the filter error covariance matrix P(k−1/k−1) is pre-multiplied by {circumflex over (F)}(k−1/k−1) and post-multiplied by the transpose of {circumflex over (F)}(k−1/k−1), and the resulting product is multiplied by 1/λ, where λ is the exponential data weighting coefficient. The resultant product λ⁻¹{circumflex over (F)}(k−1/k−1)P(k−1/k−1){circumflex over (F)}^(T)(k−1/k−1) is added to the matrix Q(k−1) according to (15h) where G(k)=I₂ and Q(k−1) is selected to be a constant diagonal matrix ε_(Q)I₂ for some small positive scalar ε_(Q). The innovation covariance matrix S(k) is obtained by adding the result to the matrix R(k) that is equal to σ_(n) ² I₂ where σ_(n) ² is the variance of the sampled noise sequences n_(i)(k) and n_(q)(k) in (14) and H(k)=I₂. Inverting the matrix S(k) and pre and post multiplying the matrix S⁻¹(k) by P(k/k−1) and subtracting the result from P(k/k−1) results in P(k/k) according to (15f). The covariance matrix P(0/0) is selected equal to εI₂ for some small positive scalar ε. Pre-multiplying S⁻¹(k) by P(k/k−1) yields the Kalman gain K(k) according to (15e).

The innovation covariance matrix S(k) is pre- and post-multiplied by K(k) and K^(T)(k) respectively providing the measurement covariance matrix R_(p)(k) for the parameter vector update Kalman filter according to (36). The elements of the vector {circumflex over (x)}(k−1/k−1) provide the measurement matrix H_(p)(k) given in (28), (29). The matrix H_(p)(k) is input to the parameter vector update Kalman filter for which the filtered state estimate {circumflex over (x)}(k/k) is the measurement vector z_(p)(k).

The parameter vector update Kalman filter 106 is similar to the state vector update Kalman filter 102 with the filtered state estimate {circumflex over (x)}(k/k) replaced by the filtered parameter vector estimate {circumflex over (β)}(k/k). For the case of constant parameter vector β, the matrix F_(p)(k−1) is equal to I₂. The elements of the filtered parameter vector estimate {circumflex over (β)}(k−1/k−1) provide the matrix {circumflex over (F)}(k−1/k−1) according to (26i) which is input to the state vector update Kalman filter. The two Kalman filters 102, 106 in FIG. 2 operate in a recursive and interlaced manner providing the estimates {circumflex over (β)}(k−1/k−1) and {circumflex over (x)}(k/k) for k=1, 2, . . . wherein the initial estimate {circumflex over (β)}(0/0) is set equal to [cos(ω⁰)sin(ω⁰)]^(T) with ω⁰ denoting an a-priori estimate for the normalized frequency ω₀ which may be equal to 0.

From the filtered parameter vector estimate {circumflex over (β)}(k/k), the estimate for the normalized frequency ω₀ is obtained by the tan₂ ⁻¹ ( ) block that provides the four quadrant inverse tangent of the input according to (46). The estimate for the analog frequency f_(a) may be obtained by multiplying {circumflex over (ω)}₀ by F_(s)/2π where F_(s) is the sampling frequency. The filtered state estimate {circumflex over (x)}(k/k) is input to a second tan₂ ⁻¹( ) block that yields the estimate for the instantaneous phase θ(k) according to (17). The filtered state estimate {circumflex over (x)}(k/k) is input to the norm ∥ ∥ block that evaluates the Euclidean norm of the input providing the estimate Â(k) for the amplitude according to (19). From Â(k), the smoothed estimate Â_(S) is obtained by the averaging block that obtains Â_(S) according to (20).

Simulation Results

As a non-limiting simulation example, consider the bandwidth B=200 Hz with a sampling rate F_(s) selected equal to 400 Hz. The amplitude A=1 volt with the bandpass noise one-sided noise spectral density N₀ is equal to 2.5×10⁻⁴ W/Hz with the signal power to noise spectral density ratio equal to 33 dB-Hz. This corresponds to the variance of the bandpass noise σ_(n) ²=2N₀B=0.1 W with the signal-to-noise ratio equal to 5 or 7 dB. The one-sided noise spectral density of both the baseband processes n_(i)(t) and n_(q)(t) is equal to 2N₀=5×10⁻⁴ W/Hz with the baseband SNR for both the in-phase and quadrature components equal to 5 (7 dB). The initial values for the matrices P, Q and P_(p) are selected as

$\begin{matrix} {{{P\left( {{0\text{/}} - 1} \right)} = \begin{bmatrix} 5 & 0 \\ 0 & 5 \end{bmatrix}};{{P_{p}\left( {{0\text{/}} - 1} \right)} = \begin{bmatrix} 4 & 0 \\ 0 & 4 \end{bmatrix}};{Q = \begin{bmatrix} 0.001 & 0 \\ 0 & 0.001 \end{bmatrix}};{{Qp} = 0};} & (49) \end{matrix}$

The exponential data weighting coefficients are selected as λ=λ_(p)=0.999. FIGS. 3-10 illustrate example results obtained over the interval of 25 samples. For the smoothed estimate of A, the number of samples N₀ is selected equal to 50.

FIG. 3 shows a plot of the two components of state estimation error {circumflex over (x)}(k/k). FIG. 4 shows a plot of the phase estimation error {tilde over (θ)}(k) versus the number of samples k. FIG. 5 shows a plot of the error in the estimation of the analog frequency f_(a). The error in the estimation of f_(a) may be relatively small after about 20 samples, wherein the initial estimation error is 55 Hz. FIG. 6 shows a plot of the result ({tilde over (ω)}₀k)² as a function of k showing its reduction with k. FIG. 7 shows a plot of the result for the trace (Rp)/2 with Rp computed in (33). In the simulations, the matrix Rp has been modified by adding a diagonal matrix equal to 0.001 I₂ with I₂ denoting the 2×2 identity matrix. The modified R_(p) matrix converges to 0.001 I₂. FIGS. 8 and 9 show a plot of the results for an interval of 100 samples showing that the errors in both the estimates of the state x(k) and the frequency f_(a) converge to zero. FIG. 10 shows a plot of the smoothed estimate of the amplitude A from (19)-(20), with N₀ in (20) selected equal to 60, showing that the estimate is close to the true value of the amplitude equal to 1.0.

Comparison with Theoretical Bounds

The performance of the adaptive Kalman filter (AKF) 100 may be compared to the theoretical bound on the frequency estimation error variance, which is also known as Cramer-Rao (C-R) bound. The Cramer Rao bound on the variance of frequency estimation error {tilde over (f)}_(a) defined in (48) is given by

$\begin{matrix} {{\overset{\sim}{f}}_{rms}^{CR} = {\left\{ {E\left\lbrack {\overset{\sim}{f}}_{a}^{2} \right\rbrack} \right\}^{1\text{/}2} \geq \left\{ {\frac{3}{2\pi^{2}}\left( \frac{2\sigma_{n}^{2}}{A^{2}} \right)\frac{F_{s}^{2}}{N_{s}^{3}}} \right\}^{1\text{/}2}}} & \left( {49a} \right) \end{matrix}$

The simulation examples compare the performance of the AKF algorithm with the C-R bound. For the comparison, the AKF algorithm, as executed by the AKF 100 is simulated with the frequency f₀ selected randomly from the range (−B, B) Hz based on a uniform distribution and with the initial frequency estimate equal to 0. For each such selection, the AKF algorithm is simulated with n_(s)=100 independent noise sequences. The procedure is repeated with n_(f) different values of the frequency f₀ selected on a random basis. For each selection of f₀, the RMS frequency estimation error {tilde over (f)}_(rms) ^(i) as a function of the number of samples processed is computed by the mean squared average over the n_(s) simulation runs given by

$\begin{matrix} {{{{\overset{\sim}{f}}_{rms}^{i} = \left\{ {\frac{1}{n_{s}}{\sum\limits_{s = 1}^{n_{s}}\; \left\lbrack {\overset{\sim}{f}}_{i,s} \right\rbrack^{2}}} \right\}^{1\text{/}2}};{i = 1}},2,\ldots,n_{f}} & \left( {49b} \right) \end{matrix}$

FIG. 11 shows the RMS frequency estimation error as computed from (49b) for an initial estimation error of 55 Hz as a function of the number of samples processed. The initial rapid convergence of the RMS frequency estimation error for one of the selections for f₀ shows that the RMS error may be reduced to about 8 Hz from the initial error of 55 Hz in about 8 samples. This is followed by a relatively slower convergence rate to an error of about 3 Hz in about 45 samples. FIG. 12 shows the RMS frequency estimation error as a function of the number of samples for the n_(f)=100 different frequency selections f₀. In FIG. 12, the signal-to-noise ratio

$\gamma \equiv \frac{A^{2}}{2\; \sigma_{n}^{2}}$

may be equal to 5 or 7 dB. The initial parameter error covariance matrix P_(p) is selected as

$\begin{matrix} {{P_{p}\left( {0/0} \right)} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}} & \left( {49\; c} \right) \end{matrix}$

All the other parameters are selected, as in the non-limiting example, to compare with the C-R bound in (49a), and the RMS estimation error evaluated in (49b) is averaged over all the n_(f)=100 frequency selections as

$\begin{matrix} {{\overset{\sim}{f}}_{rms} = \left\{ {\frac{1}{n_{f}}{\sum\limits_{i = 1}^{n_{f}}\left\lbrack {\overset{\sim}{f}}_{rms}^{i} \right\rbrack^{2}}} \right\}^{1/2}} & \left( {49\; d} \right) \end{matrix}$

FIG. 13 shows a plot of the RMS frequency error obtained from the Cramer Rao bound in (49a) and that obtained from the AKF as evaluated in (49d). The AKF algorithm may provide an RMS error close to the theoretical bound especially for a very low number of samples. For example, after processing 4 samples, the AKF provides the RMS estimation error of 7.8 Hz compared to the C-R bound of 6.2 Hz.

Time-Varying Frequency Estimation

In another non-limiting example, the frequency f_(a) is a randomly varying function of k according to the following equation

f _(a)(k)=f _(a)(k−1)+δ_(f)(k)  (50)

The perturbation δ_(f)(k) is modeled as an independent zero mean Gaussian sequence with variance σ_(f) ². From the definition of the parameters β₁ and β₂ in (9), the time-varying versions of these parameters are approximated by

β₁(k)≅=β₁(k−1)−2πT _(s)δ_(f)(k)β₂(k);β₂(k)≅β₂(k−1)+2πT _(s)δ_(f)(k)β₁(k)  (51)

As

E[β ₁ ²(k)]=E[β ₂ ²(k)]=0.5  (52)

and δ_(f)(k) is independent of β₁(k−1) and β₂(k−1), one obtains

E[β ₁(k)−β₁(k−1)]² =E[β ₂(k)−β2(k−1)]²=0.5(2πT _(s))²σ_(f) ² ≡q _(a)  (53)

Thus the process covariance matrix Q_(p) in (26) is selected equal to

$\begin{matrix} {{Q_{p} = \begin{bmatrix} {q_{a} + ɛ} & 0 \\ 0 & {q_{a} + ɛ} \end{bmatrix}};{ɛ = {1.0 \times 10^{- 4}}}} & (54) \end{matrix}$

In the simulation example, σ_(f) ²=2 and Q is modified to 0.01 I₂ to account for added uncertainty in the estimate for F(k−1) required in the Kalman filter equation (15). FIGS. 14-16 show the results for this example wherein all of the parameters are the same as for the case of FIGS. 3-11. As may be observed from FIG. 14, the estimated frequency remains close to the true frequency after an initial 10 samples. FIGS. 15 and 16 plot the frequency estimation error and the two components of the state estimation error {circumflex over (x)}(k/k) defined in (29) respectively. FIG. 17 plots the phase estimation error {tilde over (θ)}(k) defined in (18) as a function of k. After about 100 samples, the peak-to-peak phase estimation error is about 0.4 rad, corresponding to the RMS phase estimation error of about 0.07 rad. The RMS value of the random change in frequency at any time k is equal to σ_(f)=√{square root over (2)} Hz, and this component is independent of the measurements up to time k and therefore cannot be estimated at time k. Thus the ideal estimation algorithm is expected to result in the RMS frequency estimation error of σ_(f)=√{square root over (2)} Hz. From FIG. 15, the peak frequency estimation error after the initial 10 samples is about 6 Hz corresponding to an RMS error of about 2 Hz that is close to the ideal case of √{square root over (2)} Hz with the difference of about 0.6 Hz attributed to the estimation algorithm.

Estimation of Frequency Derivative

In another embodiment of the AKF estimator, both the frequency and the frequency derivative may be estimated when there is a significant non-zero frequency derivative present during the observation interval, and the derivative itself may be a constant or a slowly varying function of time during the interval of observation.

In the case when the frequency is time-varying with its derivative α_(a), the in-phase and quadrature baseband signals z_(i)(t) and z_(q)(t) are given by

$\begin{matrix} {{z_{i}(t)} = {{A\; {\cos \left( {\theta (t)} \right)}} + {n_{i}(t)}}} & (55) \\ {{z_{q}(t)} = {{A\; {\sin \left( {\theta (t)} \right)}} + {n_{q}(t)}}} & (56) \\ {{\theta (t)} = {{\omega_{a}t} + {\alpha_{a}\frac{t^{2}}{2}} + \phi}} & (57) \end{matrix}$

From (57), the difference between the phase at time kT_(s) and (k−1)T_(s) is obtained as

$\begin{matrix} {{{\theta (k)} - {\theta \left( {k - 1} \right)}} = {{\omega_{a}T_{s}} + {\alpha_{a}\frac{T_{s}^{2}}{2}\left( {{2\; k} - 1} \right)}}} & (58) \end{matrix}$

With the time-varying normalized frequency ω₀(k) defined as

$\begin{matrix} {{{\omega_{0}(k)} = {{\omega_{a}T_{s}} - {\alpha_{a}\frac{T_{s}^{2}}{2}} + {k\; \alpha_{a}T_{s}^{2}}}},{k = 1},2,\ldots} & (59) \end{matrix}$

one obtains

θ(k)−θ(k−1)=ω₀(k)  (60)

ω₀(k)=ω₀(k−1)+α₀;α₀≡α_(a) T _(s) ²  (61)

From (57), the instantaneous frequency ω_(i)(t) is given by

$\begin{matrix} {{\omega_{i}(t)} = {\frac{{\theta (t)}}{t} = {\omega_{a} + {\alpha_{a}t}}}} & (62) \end{matrix}$

From (59) and (62), the instantaneous frequency ω_(i)(t) at t=kT_(s) is related to the normalized frequency ω₀(k) by

ω_(i)(kT _(s))=[ω₀(k)+α₀/2]F _(s)  (63)

where F_(s) is the sampling frequency. In (61), α₀ may also be a slowly time-varying function of k. The parameters β₁ and β₂ in (9) are time-varying for this case and are given by

β₁(k)=cos(ω₀(k));β₂=sin(ω₀(k));k=1,2, . . .   (64)

With the state variables x₁(k) and x₂(k) defined as

x ₁(k)=A cos(θ(k))  (65a)

x ₂(k)=A sin(θ(k))  (65b)

the state space equations may be written as

$\begin{matrix} {{{x\left( {k + 1} \right)} = {{F(k)}{x(k)}}};{{x(k)} = \left\lbrack {{x_{1}(k)}{x_{2}(k)}} \right\rbrack^{T}}} & \left( {66\; a} \right) \\ {{F(k)} = \begin{bmatrix} {\beta_{1}(k)} & {- {\beta_{2}(k)}} \\ {\beta_{2}(k)} & {\beta_{1}(k)} \end{bmatrix}} & \left( {66\; b} \right) \end{matrix}$

The measurement equation is same as (14) rewritten here as (67).

$\begin{matrix} {{{z(k)} = {\begin{bmatrix} {z_{i}(k)} \\ {z_{q}(k)} \end{bmatrix} = {{{Hx}(k)} + {n(k)}}}};{{n(k)} = \begin{bmatrix} {n_{i}(k)} \\ {n_{q}(k)} \end{bmatrix}}} & (67) \end{matrix}$

In (67), H is equal to the 2×2 identity matrix. The state vector x(k) is estimated by the Kalman filter equations (15) with F(k−1) replaced by its estimate {circumflex over (F)}(k−1/k−1) obtained by replacing β₁k−1 and β₂(k−1) in (66b) by their estimates {circumflex over (β)}₁(k−1/k−1) and {circumflex over (β)}₂(k−1/k−1) respectively. The parameter vector estimate {circumflex over (β)}(k/k−1)=[{circumflex over (β)}₁(k/k−1) {circumflex over (β)}(k/k−1)]^(T) is obtained from the parameter update equations (26) with z_(p)(k), H_(p)(k), and R_(p)(k) defined by equations (23), (24) and (36) respectively and with the matrix Q_(p) set equal to the 0 matrix, G_(p) equal to the (2×2) identity matrix and the matrix F_(p)(k−1) replaced by

$\begin{matrix} {{{\hat{F}}_{p}\left( {k - 1} \right)} = \begin{bmatrix} {\cos \left( {{\hat{\alpha}}_{0}\left( {k - 1} \right)} \right)} & {- {\sin \left( {{\hat{\alpha}}_{0}\left( {k - 1} \right)} \right)}} \\ {\sin \left( {{\hat{\alpha}}_{0}\left( {k - 1} \right)} \right)} & {\cos \left( {{\hat{\alpha}}_{0}\left( {k - 1} \right)} \right)} \end{bmatrix}} & (68) \end{matrix}$

In (68), {circumflex over (α)}₀(k−1) denotes the estimate of α₀ based on the measurement z(i) with i=1, 2, . . . , k−2. In order to obtain the estimate of {circumflex over (α)}₀(k) for any k, the normalized frequency α₀(k) at time k is estimated by

{circumflex over (ω)}₀(k)=tan₂ ⁻¹({circumflex over (β)}₂(k/k),{circumflex over (β)}₁(k/k));k=1,2 . . .   (69)

In (69), tan₂ ⁻¹( ) denotes the four quadrant inverse tangent functions and {circumflex over (ω)}₀(0/0) may be set equal to an initial estimate ω⁰ of ω(0) which may be equal to 0. In the parameter vector update equation (26), {circumflex over (β)}(0/0) is correspondingly set equal to [cos(ω⁰)sin(ω⁰)]^(T). From (69), the first-order differences are obtained as

{circumflex over (ω)}_(d)(k)={circumflex over (ω)}₀(k)−{circumflex over (ω)}₀(k−1);k=1,2, . . .   (70)

The estimates {circumflex over (α)}_(d)(k) in (70) constitute the noisy estimate of the parameter α₀ wherein α₀ may also be a slowly varying function of k. The smoothed estimate of α₀(k) is obtained by filtering the estimates {circumflex over (ω)}_(d)(k) by an appropriate filter. For example, use of a first-order filter yields the following smoothed estimate of α₀(k).

{circumflex over (α)}₀(k)=λ_(a){circumflex over (α)}₀(k−1)+(1−λ_(a)){circumflex over (ω)}_(d)(k);k=1,2, . . .   (71)

In (71), {circumflex over (α)}₀(0) may be set equal to an initial estimate of α₀ or may be set equal to 0. In (71), λ_(α) is a positive constant with 0<λ_(α)<1 and may determine the filter time constant which is set in accordance with the expected rate of variation of α₀. The parameter λ_(α) may itself be made a function of k; for example, initially λ_(α) may be set equal to 0.995 to provide a relatively small weighting to the initial estimates {circumflex over (ω)}_(d)(k) with a relatively large estimation error and may be set to 0.99 after some initial period to provide a fast tracking of α₀(k). The procedure can be extended to the case where a dynamic model for α₀(k) is specified in terms of its derivatives by using a Kalman filter update equation similar to (26) and providing the estimate for α₀(k) and that of the derivatives of α₀(k) based on the specified dynamic model and treating {circumflex over (ω)}_(d)(k) as the noisy measurement of α₀(k).

Referring now to FIG. 18, an example architecture 1800 in accordance with embodiments of the disclosure for the case of a relatively significant non-zero frequency derivative estimation along with the time-varying frequency estimation is illustrated. The signal z(k) may be provided to a frequency estimator block 1810 that may be similar to the AKF 100 of FIGS. 1 and 2. The frequency estimator block 1810 may include a state update Kalman filter 1812 and a parameter update Kalman filter 1816. The frequency estimator block 1810 may provide at its outputs a filtered state estimate {circumflex over (x)}(k/k) and a filtered parameter vector estimate {circumflex over (β)}(k/k) from which a frequency estimate {circumflex over (f)}_(a)(k) may be obtained as in the AKF 100 of FIGS. 1 and 2. Instead of being equal to the identity matrix as may be the case for AKF 100 of FIGS. 1 and 2, may be time-varying and may be generated by a frequency derivative estimator 1820.

The normalized frequency estimate ω₀(k) may be provided to a first-order differencing block 1830 which may generate a difference frequency {circumflex over (ω)}_(d)(k) according to (70). The difference frequency {circumflex over (ω)}_(d)(k) may be provided to a first-order filter 1840 that generates at its output an estimate of the frequency derivative {circumflex over (α)}₀(k) according to (71). The delayed version of {circumflex over (α)}₀(k) may be input to the cascade of the cos( ) and sin( ) blocks and the scalar to vector converter 1850, followed by a matrix constructor block 1854 that generates {circumflex over (F)}_(p)(k−1) from the vector [cos({circumflex over (α)}₀(k−1))sin({circumflex over (α)}₀(k−1))]^(T) according to (68). The 2×2 matrix {circumflex over (F)}_(p)(k−1) may be input to the parameter update Kalman filter 1816 for the generation of parameter vector estimate {circumflex over (β)}(k/k).

A non-limiting simulation example is shown for the estimation of the time-varying frequency with the frequency at time k=0 equal to 25 Hz and the parameter α₀ equal to 0.007 corresponding to the parameter α_(a) equal to 0.007×400²=1120 rad/sec². This corresponds to a rate of change in frequency of about 178 Hz/sec. The initial estimates of the frequency and the parameter α₀ at time k=0 are equal to −25 Hz and 0 respectively. The SNR for this example is 5 (7 dB) with the initial values for various matrices in the AKF, same as in (49). FIG. 19 shows a plot of the frequency as a function of time along with its estimate obtained from the AKF. After about 100 samples, the frequency is tracked very closely by its estimate. FIG. 20 plots the convergence of the parameter α₀ showing a rapid initial convergence of the estimate to the true parameter value. In (71) the filter parameter λ_(α) is initially selected equal to 0.995 and may be reduced to 0.99 after 150 samples.

In some embodiments of the disclosure, the first and higher order derivatives may be obtained by a Kalman filter 3 that may replace the frequency estimator block 1820 of FIG. 18. For example, for the case of first and second derivative estimation, the state vector x_(h)(k) for the Kalman filter 3 may be given by

x _(h)(k)=[ω₀(k)α₀(k)β₀(k)]^(T)  (71a)

wherein (71a) ω₀(k) and α₀(k) are the normalized frequency and the normalized first derivative of frequency respectively and β₀=β_(a)T_(s) ³ with β_(a) denotes the second derivative of the frequency ω(t). The time-variation of β₀ may be given by

β₀(k+1)=β₀(k)+n _(β)(k)  (71b)

In (71b), n_(β)(k) is a zero mean independent sequence with variance σ_(β) ². The state transition equation for x_(h)(k) is given by

x _(h)(k+1)=F _(h) x _(h)(k)+G _(h)ξ_(h)  (71c)

where in (71c) G_(h) is the identity matrix and the covariance matrix Q_(h) of the noise vector ξ_(h) is given by

$\begin{matrix} {Q_{h} = {\begin{bmatrix} {1/20} & {1/8} & {1/6} \\ {1/8} & {1/3} & {1/2} \\ {1/6} & {1/2} & 1 \end{bmatrix}\sigma_{\beta}^{2}}} & \left( {71\; d} \right) \end{matrix}$

The state transition matrix F_(h) in (71b) is given by

$\begin{matrix} {F_{h} = \begin{bmatrix} 1 & 1 & {1/2} \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix}} & \left( {71\; e} \right) \end{matrix}$

The measurement equation for the Kalman filter 3 is given by

z _(h)(k)=Hz _(h)(k)+n _(h)(k);H=[1 0 0]  (710

with z_(h)(k) in (71f) made equal to the normalized frequency estimate obtained from the Kalman filter 2 state estimate {circumflex over (β)}(k/k) as in FIG. 18. Thus n_(h)(k)={tilde over (ω)}₀(k) and the covariance of n_(h)(k) may be estimated from (51)-(53) and is given by

R _(h)(k)=E[{tilde over (ω)} ₀ ²(k)]≅Trace[P _(p)(k/k)]  (71g)

On the basis of the state space model described by (71a-71g), the Kalman filter 3 may provide the estimate {circumflex over (x)}_(h)(k/k), the second component of which is the estimate of α₀(k) that may be inputted to the block 1854 of FIG. 18 instead of that from block 1818 of FIG. 18. Derivatives of frequency of order higher than 2 can similarly be obtained by appropriate extension of the dimension of the state vector x_(h)(k).

Estimation of Multiple Frequencies

In further embodiments of the disclosure, parameter estimation on multiple sinusoidal signals received in the presence of noise may be performed. In this case, the received intermediate frequency (bandpass) signal z_(IF)(t) is given by

$\begin{matrix} {{z_{IF}(t)} = {{\sum\limits_{m = 1}^{N}{A_{m}{\cos \left( {{2\; {\pi \left( {f_{c} + f_{am}} \right)}t} + \phi_{m}} \right)}}} + {n(t)}}} & (72) \end{matrix}$

In (72), f_(IF) is the known intermediate frequency and the unknown frequencies f_(am) have their values in the range of −B to B Hz for some B. The amplitudes A_(m) and phase φ_(m) associated with frequencies f_(am) are also unknown. The bandpass white noise n(t) has a one-sided noise power spectral density of N₀ W/Hz. The corresponding baseband model is given by

$\begin{matrix} {{z_{i}(t)} = {{\sum\limits_{m = 1}^{N}{A_{m}{\cos \left( {{\omega_{am}t} + \phi_{m}} \right)}}} + {n_{i}(t)}}} & \left( {73\; a} \right) \\ {{z_{q}(t)} = {{\sum\limits_{m = 1}^{N}{A_{m}{\sin \left( {{\omega_{am}t} + \phi_{m}} \right)}}} + {n_{q}(t)}}} & \left( {73\; b} \right) \end{matrix}$

In (73a, 73b), z_(i)(t) and z_(q)(t) are the in-phase and quadrature signals and ω_(am)=27πf_(am) for m=1, 2, . . . , N. The baseband processes n_(i)(t) and n_(q)(t) are independent white noise processes with the two-sided power spectral density N₀ W/Hz. It is required to estimate the parameters A_(m), ω_(am) and φ_(m) for m=1, 2, . . . , N. The signals z_(i)(t) and z_(q)(t) are sampled at a rate F_(s) that is at least two times the maximum possible frequency B. The corresponding discrete time version of the measurements is given by

$\begin{matrix} {{z_{i}(k)} = {{\sum\limits_{m = 1}^{N}{A_{m}{\cos \left( {{k\; \omega_{m}} + \phi_{m}} \right)}}} + {n_{i}(k)}}} & \left( {74a} \right) \\ {{z_{q}(k)} = {{\sum\limits_{m = 1}^{N}{A_{m}{\sin \left( {{k\; \omega_{m}} + \phi_{m}} \right)}}} + {n_{q}(k)}}} & \left( {74b} \right) \end{matrix}$

In equation (74), k denotes the discrete time index and ω_(m)=ω_(am)T_(s), m=1, N are the digital frequencies in rad with T_(s)=1/F_(s). The sampled noise sequences n_(i)(k) and n_(q)(k) are independent random sequences with zero mean and variance σ_(n) ²=N₀/T_(s). In the case of multiple frequencies, the state vector x(k) is a 2N dimensional vector

x(k)=[x ₁(k)x ₂(k) . . . x _(2N)(k)]^(T)  (75)

With the components x_(m)(k) given by

x _(2m-1)(k)=A _(m) cos(kω _(m)+φ_(m))

x _(2m)(k)=A _(m) sin(kω _(m)+φ_(m));m=1,2, . . . ,N  (76)

In the more general case where the m^(th) signal has a frequency derivative α_(am), the state components in (76) are replaced by

x _(2m-1)(k)=A _(m) cos(θ_(m)(k))  (77a)

x _(2m)(k)=A _(m) sin(θ_(m)(k))  (77b)

where θ_(m)(k) is the sampled version of θ_(m)(t) given by

$\begin{matrix} {{\theta_{m}(t)} = {{\omega_{am}(t)} + {\alpha_{m}\frac{t^{2}}{2}} + \phi_{m}}} & (78) \end{matrix}$

and as for the case of a single sinusoidal signal

$\begin{matrix} {{{\theta_{m}(k)} - {\theta_{m}\left( {k - 1} \right)}} = {\omega_{m}(k)}} & \left( {79a} \right) \\ {{{\omega_{m}(k)} = {{\omega_{am}T_{s}} - {\alpha_{am}\frac{T_{s}^{2}}{2}} + {k\; \alpha_{am}T_{s}^{2}}}},{k = 1},2,\ldots} & \left( {79b} \right) \\ {{{\omega_{m}(k)} = {{\omega_{m}\left( {k - 1} \right)} + \alpha_{m}}};{\alpha_{m} \equiv {\alpha_{am}T_{s}^{2}}}} & \left( {79c} \right) \end{matrix}$

The measurement equations (74a, 74b) may be written in the following matrix vector form

$\begin{matrix} {{{z(k)} = {\begin{bmatrix} {z_{i}(k)} \\ {z_{q}(k)} \end{bmatrix} = {{{Hx}(k)} + {n(k)}}}};{{n(k)} = \begin{bmatrix} {n_{i}(k)} \\ {n_{q}(k)} \end{bmatrix}}} & (80) \end{matrix}$

In (80), the measurement matrix H is a 2×2N matrix given in the following partitioned form

H=[I ₂ I ₂ . . . I ₂]  (81)

where I₂ is the (2×2) identity matrix. The filtered and predicted state estimates {circumflex over (x)}(k/k) and {circumflex over (x)}(k/k−1) are obtained from the Kalman filter equation (15) wherein the corresponding covariance matrices P(k/k) and P(k/k−1) are square matrices of dimension 2N. The process covariance matrix Q may be set to zero as for the case of single frequency estimation. The matrix F(k−1) in (15) is replaced by the estimate {circumflex over (F)}(k−1/k−1) obtained by the parameter vector update equations similar to (26). The matrix {circumflex over (F)}(k−1/k−1) is a 2N×2N matrix given in the following partitioned form

$\begin{matrix} {{\hat{F}\left( {k - {1/k} - 1} \right)} = \begin{bmatrix} {{\hat{F}}_{1}\left( {k - {1/k} - 1} \right)} & O & O & \ldots & O \\ O & {{\hat{F}}_{2}\left( {k - {1/k} - 1} \right)} & O & \ldots & O \\ \vdots & \vdots & \vdots & \ldots & \vdots \\ O & O & O & \ldots & {{\hat{F}}_{N}\left( {k - {1/k} - 1} \right)} \end{bmatrix}} & (82) \end{matrix}$

In (82), {circumflex over (F)}_(m)(k−1/k−1) for m=1, 2, . . . , N is a 2×2 matrix given by

$\begin{matrix} {{{\hat{F}}_{m}\left( {k - {1/k} - 1} \right)} = \begin{bmatrix} {{\hat{\beta}}_{m\; l}\left( {k - {1/k} - 1} \right)} & {- {{\hat{\beta}}_{m\; 2}\left( {k - {1/k} - 1} \right)}} \\ {{\hat{\beta}}_{m\; 2}\left( {k - {1/k} - 1} \right)} & {{\hat{\beta}}_{m\; l}\left( {k - {1/k} - 1} \right)} \end{bmatrix}} & (83) \end{matrix}$

The parameter vector estimate

{circumflex over (β)}_(m)(k−1/k−1)=[{circumflex over (β)}_(m1)(k−1/k−1){circumflex over (β)}_(m2)(k−1/k−1)]^(T) is obtained recursively from the parameter update equation (26) with {circumflex over (β)}(k/k), {circumflex over (β)}(k/k−1), z_(p)(k), H_(p)(k) and R_(p)(k) in (26) replaced by {circumflex over (β)}_(m)(k/k), {circumflex over (β)}_(m)(k/k−1), z_(pm)(k), H_(pm)(k) and R_(pm)(k) respectively, where

$\begin{matrix} {{{z_{\; {p\; m}}(k)} = {\begin{bmatrix} {{\hat{x}}_{{2m} - 1}\left( {k/k} \right)} \\ {{\hat{x}}_{2m}\left( {k/k} \right)} \end{bmatrix} = {{{H_{p\; m}(k)}{\beta_{m}(k)}} + {n_{pm}(k)}}}};} & (84) \\ {{H_{p\; m}(k)} = \begin{bmatrix} {{\hat{x}}_{{2m} - 1}\left( {k - {1/k} - 1} \right)} & {- {{\hat{x}}_{2m}\left( {k - {1/k} - 1} \right)}} \\ {{\hat{x}}_{2m}\left( {k - {1/k} - 1} \right)} & {{\hat{x}}_{{2m} - 1}\left( {k - {1/k} - 1} \right)} \end{bmatrix}} & (85) \end{matrix}$

The matrix Q_(p) is set equal to the zero matrix with G_(p) equal to the (2×2) identity matrix. The matrix R_(p)(k) in (33) is a 2N×2N matrix for this case of multiple signals, with R_(pm) given by the following (2×2) submatrix of R_(p)(k).

$\begin{matrix} {{{R_{pm} = \begin{bmatrix} {R_{p}\left( {{{2m} - 1},{{2m} - 1}} \right)} & {R_{p}\left( {{{2m} - 1},{2m}} \right)} \\ {R_{p}\left( {{2m},{{2m} - 1}} \right)} & {R_{p}\left( {{2m},{2m}} \right)} \end{bmatrix}};}{{m = 1},2,\ldots \mspace{14mu},N}} & (86) \end{matrix}$

The matrix F_(p)(k−1) in (26) is replaced by F_(pm)(k−1) given by

$\begin{matrix} {{{{F_{pm}\left( {k - 1} \right)} = \begin{bmatrix} {\cos \left( {{\hat{\alpha}}_{m}\left( {k - 1} \right)} \right)} & {- {\sin \left( {{\hat{\alpha}}_{m}\left( {k - 1} \right)} \right)}} \\ {\sin \left( {{\hat{\alpha}}_{m}\left( {k - 1} \right)} \right)} & {\cos \left( {{\hat{\alpha}}_{m}\left( {k - 1} \right)} \right)} \end{bmatrix}};}{{m = 1},2,\ldots \mspace{14mu},N}} & (87) \end{matrix}$

In (87), {circumflex over (α)}_(m)(k−1) denotes the estimate of α_(m) based on the measurements z(i) for i=1, 2, . . . , k−2 and is estimated as for the case of the single frequency estimation. Thus the normalized frequency ω_(m)(k) at time k is estimated by

{circumflex over (ω)}_(m)(k)=tan₂ ⁻¹({circumflex over (β)}_(m2)(k/k),{circumflex over (β)}_(m1)(k/k));k=1,2 . . .   (88)

The normalized frequency estimate {circumflex over (ω)}_(m)(0/0) at time 0 may be set to an initial estimate ω^(m) of ω_(m)(0) which may be equal to 0 and {circumflex over (β)}_(m)(0/0) in the parameter vector update equation set equal to [cos(ω^(m))sin(ω^(m))]^(T). From (88), the first order differences are obtained as

{circumflex over (ω)}_(md)(k)={circumflex over (ω)}_(m)(k)−{circumflex over (ω)}_(m)(k−1);k=1,2, . . .   (89)

The estimate {circumflex over (ω)}_(md)(k) in (89) constitutes the noisy estimate of the parameter α_(m) which may also be a slowly varying function of k. The smoothed estimate of ω_(m) may be obtained by filtering the estimate {circumflex over (ω)}_(md)(k) by an appropriate filter. For example, use of a first-order filter yields

{circumflex over (α)}_(m)(k)=λ_(m){circumflex over (α)}_(m)(k−1)+(1−λ_(m)) {circumflex over (ω)}_(md)(k);k=1, 2, . . .   (90)

In (90) {circumflex over (α)}_(m)(0) may be set equal to an initial estimate of α_(m) or may be set equal to 0. In (90), λ_(m) is a positive constant with 0<λ_(m)<1 and determines the filter time constant which is set in accordance with the expected rate of variation of α_(m). The parameter, λ_(m) may itself be a function of k; for example, initially λ_(m) may be set equal to 0.999 to provide relatively small weighting to the initial estimates {circumflex over (ω)}_(md)(k) with a relatively large estimation error and may be set to 0.99 after some initial period to provide a fast tracking of α₀(k). The procedure may be extended to the case where a dynamic model for α_(m)(k) is specified in terms of its derivatives by using a Kalman filter update equation similar to (26) for providing the estimate for α_(m)(k) and that of the derivatives of α₀(k) based on the specified dynamic model and treating {circumflex over (ω)}_(md)(k) as the noisy measurement of α₀(k).

From the definition of the components of the state vector in (77), the phase estimate at time k is obtained as

{circumflex over (θ)}_(m)(k)=tan₂ ⁻¹({circumflex over (x)} _(2m)(k/k),{circumflex over (x)} _(2m-1)(k/k));m=1,2, . . . ,N  (91)

The filtered estimate of the amplitude A_(m) is given by

Â _(m)(k)=[{circumflex over (x)} _(2m-1) ²(k/k)+{circumflex over (x)} _(2m) ²(k/k)]^(1/2)  (92)

A smoothed estimate of the amplitude A_(m) may be obtained from (93).

$\begin{matrix} {{\hat{A}}_{mS} = \left\lbrack {\frac{1}{N_{S} - N_{0}}{\sum\limits_{k = {N_{0} + 1}}^{N_{s}}{{\hat{A}}_{m}^{2}(k)}}} \right\rbrack^{1/2}} & (93) \end{matrix}$

In (93), N_(s) is the total number of samples and N₀ is the number of samples that are discarded in the computation of the smoothed estimate of A_(m).

FIG. 21 illustrates another embodiment of the disclosure for the estimation of multiple frequencies present in an input signal z(k) with significant frequency derivatives using adaptive Kalman filter-multi-frequency (AKF-MF) 2100. The signal z(k) may be input to a state update Kalman filter 2110 where the dimension of the state vector may be equal to 2N when N is the number of frequencies. The measurement matrix H at the input to the state update Kalman filter 2110 may be of dimension 2×2N and is given by (81). The measurement noise covariance matrix R(k) at the input to the state update Kalman filter 2110 may be given by σ_(n) ² I₂, and Q(k−1) may be equal to a constant diagonal matrix ε_(Q)I_(2N) for a small positive scalar ε_(Q). The filtered state estimate {circumflex over (x)}(k/k) may be provided to a vector splitter 2120 that may partition the input vector {circumflex over (x)}(k/k) into N vectors each of dimension 2 and denoted by {circumflex over (x)}¹(k/k), {circumflex over (x)}²(k/k), . . . {circumflex over (x)}^(N)(k/k) with

{circumflex over (x)} ^(m)(k/k)=[{circumflex over (x)} _(2m-1)(k/k){circumflex over (x)} _(2m)(k/k)]^(T)  (93a)

A Kalman gain matrix K(k) of dimension 2N×2 may be input to the matrix splitter to partition K(k) into N submatrices K¹(k), K²(k), . . . , K^(N)(k) each of dimension 2×2 with

$\begin{matrix} {{{K^{m}(k)} = \begin{bmatrix} {K\left( {{{2m} - 1},1} \right)} & {K\left( {{{2m} - 1},2} \right)} \\ {K\left( {{2m},1} \right)} & {K\left( {{2m},2} \right)} \end{bmatrix}},{m = 1},2,\ldots \mspace{14mu},N} & \left( {93b} \right) \end{matrix}$

In (93b), the argument k in the elements of the matrix has been dropped for the notational simplification. The innovation covariance matrix S(k) may be pre- and post-multiplied by K^(m)(k) and its transpose K^(mT)(k), and the resulting product may be added to a constant matrix ε_(R)I₂, for some small positive scalar ε_(R), providing a measurement covariance matrix R_(pm) for an m^(th) PUS (parameter update subsystem) block 2130(A)-(N) (collectively referred to herein as 2130) for m=1, 2, . . . , N. The component state vector {circumflex over (x)}^(m)(k/k) may be provided to the m^(th) PUS block 2130 to generate the estimates for the frequency {circumflex over (f)}_(a,m)(k), frequency derivative {circumflex over (α)}_(a,m)(k), phase {circumflex over (θ)}_(m)(k) and amplitude Â_(m)(k) and the smoothed amplitude estimate Â_(ms), for m=1, 2, . . . , N. The operation of the PUS block 2130 has been explained with reference to block 1818 of FIG. 18 and, in the interest of brevity, will not be repeated here.

When the number of frequencies N in (72) is relatively large, the dimension of the covariance matrices P(k/k) and P(k/k−1) in the Kalman filter equation (15), equal to 2N×2N, is also correspondingly large. In this case, the matrix dimension can be reduced by filtering the complex valued signal z_(c)(k)=z_(i)(k)+j z_(q)(k); j=√{square root over (−1)} by a set of M complex bandpass filters with their bandwidths equal to 2B/M and their center frequencies selected so that the M filters have mutually disjoint pass bands. For example, with M=4, each of the 4 filters has a bandwidth equal to B/2 with their respective center frequencies equal to −3B/4, −B/4, B/4, and 3B/4 respectively. In alternative embodiments, there may be some non-zero overlap among the adjacent frequency bands of the M complex filters' output signals to avoid attenuating any frequency that may fall in a transition band of the filter.

The outputs of the M filters may be down converted to complex baseband so that each of the M down converted signals has its center frequency equal to 0 and has frequencies in the range of −B/4 to B/4. The sampling rates of the down converted signals are decimated by a factor M to the rate F_(s)/M. All of the operations of bandpass filtering, down conversion to complex baseband, and decimation can be performed by a bank of polyphase filters.

The individual outputs of the polyphase filters are then processed by the adaptive Kalman filters to acquire and track the frequencies present in the respective outputs of the polyphase filters. The frequency estimates thus obtained are adjusted by the center frequencies of the corresponding bandpass filters to arrive at the frequency, frequency derivative, and the amplitude estimates of the N signals present in the signal z_(c)(k).

In an alternative embodiment, instead of using a polyphase filter, the filtering of the signal z_(c)(i) may be performed by the FFT operation as follows. Let

$\begin{matrix} {{{{z^{m}(k)} = {\frac{1}{M}{\sum\limits_{i = {{({k - 1})}M}}^{{kM} - 1}{{z_{c}(i)}{\exp \left( {{- j}\; 2f\; \pi \; {ff}_{m}{iT}_{s}} \right)}}}}};}{{f_{m} = {{- B} + {m\; \Delta \; f}}};{{\Delta \; f} = {F_{s}/M}};}{{m = 0},1,\ldots \mspace{14mu},{M - 1}}} & (94) \end{matrix}$

The operation in (94) constitutes frequency shifting of the signal z_(c)(i) by frequency f_(m) followed by a decimation by the factor M assumed to be even. The signal z^(m)(k) can also be obtained in terms of the discrete Fourier transform or the Fast Fourier transform (FFT) z _(f) ^(k) of the k^(th) segment of z_(c)(i) of length M given by z ^(k)=[z_(c)((k−1)M)z_(c)((k−1)M+1) . . . z_(c)(kM−1)] after being modified by multiplication of the i^(th) element of z ^(k) by (−1)^(i), i.e., with

$\begin{matrix} {{{{{\overset{\_}{z}}_{f}^{k}(m)} = {\sum\limits_{i = 0}^{M - 1}{\left( {- 1} \right)^{- i}{{\overset{\_}{z}}^{k}(i)}{\exp \left( {{- j}\; 2\pi \; {{im}/M}} \right)}}}};}{{m = 0},1,\ldots \mspace{14mu},{M - 1}}} & (95) \\ {{z_{c}^{m}(k)} = {\frac{1}{M}{{\overset{\_}{z}}_{f}^{k}(m)}}} & (96) \end{matrix}$

For a component z₀(k) at frequency f₀=(f_(m) ₀ +δf) contained in the signal z_(c)(k) for some m₀, 0≦m₀≦M−1, with −Δf≦δf≦Δf, the k^(th) segment of that component complex valued signal is given by

z ₀ ^(k)(i)=Ae ^(jφ)exp[j2π(f _(m) ₀ +δf)iT _(s) ];i=0,1, . . . M−1  (97)

where z ₀ ^(k)(i) denotes the i^(th) element of the segment z ₀ ^(k) and φ denotes the phase at the start of the k^(th) segment. From (94), the corresponding output for the signal z ₀ ^(k) is given by

$\begin{matrix} {{z_{0}^{m}(k)} = {A\; ^{j\; \phi}{\sum\limits_{i = 0}^{M - 1}{\exp \left\lbrack {j\; 2{\pi \left( {f_{m_{0}} - f_{m} + {\delta \; f}} \right)}{iT}_{s}} \right\rbrack}}}} & (98) \end{matrix}$

From (98)

$\begin{matrix} {{{z_{0}^{m}(k)} = {\frac{A}{M}^{j\; \phi}\exp \left\{ {{j\pi}\left\lbrack {\frac{\delta \; f}{\Delta \; f}\frac{\left( {M - 1} \right)}{M}} \right\rbrack} \right\} \frac{\sin \left( {\pi \; \delta \; {f/\Delta}\; f} \right)}{\left( {\pi \; \delta \; {f/\left( {M\; \Delta \; f} \right)}} \right)}}};{m = m_{0}}} & (99) \end{matrix}$

The expression for z₀ ^(m)(k) may also be approximated by

$\begin{matrix} {{z_{0}^{m}(k)} \cong \left\{ \begin{matrix} {{A\; ^{j\; \phi}\exp \left\{ {j\; {\pi \left\lbrack {\frac{\delta \; f}{\Delta \; f}\frac{\left( {M - 1} \right)}{M}} \right\rbrack}} \right\} \frac{\sin \left( {\pi \; \delta \; {f/\Delta}\; f} \right)}{\left( {{\pi\delta}\; {f/\Delta}\; f} \right)}};} & {m = m_{0}} \\ {0;} & {m \neq m_{0}} \end{matrix} \right.} & (100) \end{matrix}$

As the adjacent frequencies f_(m) are spaced by Δf, for any frequency in the interval f_(m) ₀ and f_(m) ₀ ₊₁ with f₀=f_(m) ₀ +δf; 0≦δf≦Δf, one obtains

$\begin{matrix} {{{{A_{1} \equiv {z_{0}^{m_{0}}(k)}} = {A\; a_{1}^{j\; \phi}^{{j\psi}_{1}}}};{a_{1} = \frac{\sin \left( {\pi \; \delta \; {f/\Delta}\; f} \right)}{\left( {\pi \; \delta \; {f/\Delta}\; f} \right)}};}{\psi_{1} = {\left( {\pi \; \delta \; {f/\Delta}\; f} \right)\left( \frac{M - 1}{M} \right)}}} & \left( {101a} \right) \\ {{{{A_{2} \equiv {z_{0}^{m_{0} + 1}(k)}} = {{Aa}_{2}^{j\phi}^{j\; \psi_{2\;}}}};{a_{2} = \frac{\sin \left( {\pi \left( {1 - {\delta \; {f/\Delta}\; f}} \right)} \right)}{\left( {\pi \left( {1 - {\delta \; {f/\Delta}\; f}} \right)} \right)}};}{\psi_{2} = {\left( {\pi \left( {1 - {\delta \; {f/\Delta}\; f}} \right)} \right)\left( \frac{M - 1}{M} \right)}}} & \left( {101b} \right) \end{matrix}$

The adaptive Kalman filter for multiple frequencies (AKF-MF) 2100 may be applied to signals z^(m)(k), m=0, 1, . . . , M−1. For any frequency f₀ with f₀=f_(m) ₀ +δf; 0≦δf≦Δf, the AKF-MF 2100 applied to both z^(m) ⁰ (k) and z^(m) ⁰ ⁺¹(k) result in frequency estimates f_(r1) and f_(r2) close to δf and −(Δf−δf) respectively with the estimate of δf given by δf=(f_(r1)+f_(r2)+Δf)/2. From f_(r1) and f_(r2), the estimate of f₀ is given by f_(m) ₀ +(f_(r1)+f_(r2)+Δf)/2. The frequency estimates from any two AKF-MFs 2100 are combined in this manner if the estimates differ by less than the resolution frequency f_(res) which may be selected to be a fraction of Δf. The corresponding estimates of the amplitudes Â₁ and Â₂ provided by the two AKFM are expected to be close to the magnitudes of A₁ and A₂ respectively given by (101).

Thus with the estimate of δf known, the coefficients a₁ and a₂ and the phase ψ₁ and ψ₂ may be evaluated from (101a,101b) after replacing δf by its estimate and the estimate of the amplitude A may be obtained by the maximal ratio combining of Â₁ and Â₂ as

Â=|a ₁ Â ₁ e ^(−jψ) ¹ +a ₂ Â ₂ e ^(−jψ) ² |/(a ₁ ² +a ₂ ²)  (102a)

For the case of a2=0, the equation (102a) normalizes the amplitude A₁ by a₁ providing the correct estimate for the amplitude A. When the estimate has significant error, an incoherent combining of the amplitudes Â₁ and Â₂ may be used to yield the following amplitude estimate.

Â=[a ₁ |Â ₁ |+a ₂ |Â ₂|]/(a ₁ ² +a ₂ ²)  (102b)

The estimate for the phase is given by

{circumflex over (φ)}=[arg(A ₁)−ψ₁+arg(A ₂)−ψ₂]/2  (103)

FIG. 22 illustrates a further example embodiment of the disclosure wherein the input signal, including multiple frequencies, may be split into a number M of signals that have approximately disjoint spectrum with some possible overlap using the architecture 2200 of FIG. 22. The complex valued signal z_(c)(i), where i denotes input time index, may be provided to a bank of FFT filters 2210. In particular, z_(c)(i) may be input to a serial to parallel converter 2214 that may split the input signal z_(c)(i) into M parallel streams denoted by z ^(k)(0), z ^(k)(M−1). The signals with odd index in their arguments may be inverted. For any time index k, the signals after being multiplied by ±1 may be input to an FFT block 2222 that may provide the FFT of the input vector z _(f) ^(k)(m), m=0, 1, . . . , M−1 as the output of the FFT block 2222 according to (95). The FFT outputs after normalization by M may include filtered signals z_(c) ^(m)(k), m=0, 1, . . . , M−1; k=0, 1, . . . defined in (94). The signal z_(c) ^(m)(k) may be input to a complex to real converter 2230(A)-(N) (collectively referred to herein as 2230) that outputs a dimension 2 vector z^(m)(k) with its elements equal to the real and imaginary parts, respectively, of the signal z_(c) ^(m)(k).

The two dimensional vector z^(m)(k) is input to the AKF-MF block that is also inputted with the matrices H_(m)(k), Q_(m)(k−1), and R_(m)(k). The matrix H_(m)(k) is given by (81) and is of dimension 2×2N_(m), Q_(m)(k−1)=ε_(Q)I_(2Nm) for some small positive scalar ε_(Q) and R_(m)(k)=σ²I₂ with σ²=σ_(n) ²/M and with N_(m) denoting the number of frequencies in the signal z_(c) ^(m)(k) and may be replaced by some appropriate upper bound. Partitioning the input signal z_(c)(i) in this manner reduces both the dimension of the state vector and various other matrices and at the same time reduces the noise variance by the factor M.

Referring still to FIG. 22, the AKF-MF block 2250(A)-(N) (collectively referred to herein as 2250) may provide, as its output, the frequency estimates {circumflex over (f)}_(m,i)(k), frequency derivative {circumflex over (α)}_(m,i)(k) (not shown), phase {circumflex over (φ)}_(m,i)(k) and the amplitude Â_(m,i)(k), for i=1, 2, . . . , N_(m) for m=0, 1, . . . , M−1. The operation of the AKF-MF block 2250 has been explained with reference to FIG. 21, and in the interest of brevity, will not be repeated here. The estimates of frequencies after being modified by the frequencies (−B+mΔf), frequency derivatives, amplitudes, and phase may be input to a collator/combiner block 2270. In the collator/combiner block 2270, any two frequency estimates in any two adjacent AKF-MF blocks 2250 that are within the resolution frequency of each other are combined into one estimate obtained by either a simple arithmetic average of the two frequencies or by a weighted average with the weights determined by the corresponding amplitudes with similar averaging of the frequency derivatives. The corresponding amplitudes and phase may be combined according to (102)-(103). For the case of constant frequencies, the proximity may be determined on the basis of only the final estimates at time N_(s) where as for the time-varying frequencies, the two frequency estimates should be close to each other over an interval of time to be combined into one. The collator/combiner block, after possibly combining frequency estimates, may provide the N frequencies, frequency derivatives, amplitudes and phase as the output. In an alternative embodiment, the operation of splitting the input complex signal z_(c)(k) into M parallel streams denoted by z _(c) ⁰(k), z ¹(k), . . . z ^(M-1)(k) with approximately mutually disjointed spectra may be performed by a bank of polyphase filters instead of the bank of FFT filters 2210 as shown in FIG. 22.

Simulation Results

FIG. 23 shows a plot of the frequency estimation error for the case of N=2 frequencies at 76 Hz and 135 Hz with their respective amplitudes A₁ and A₂ both equal to 0.5. The noise variance a σ_(n) ²=0.1 corresponds to the total signal power to noise power ratio of 2.5 (3.5 dB). The matrix P(0/0) is equal to 5I₄ with I₄ denoting the 4×4 identity matrix and P_(p)(0/0)=0.1I₂, Q=1.0×10⁻⁴I₄. The initial estimates for the two frequencies are 55 Hz and 161 Hz, respectively. The estimation error in the estimates of both the frequencies may become very small with about 40 samples. FIG. 24 shows a plot of the error in the amplitude estimates Â₁ and Â₂ obtained from (92). FIG. 25 shows a plot of the amplitude estimation errors for the case when both the amplitudes A₁ and A₂ are equal to 1 corresponding to the total signal power to noise power ratio of 10 (10 dB). In this case, the amplitude estimation errors are also small. The frequency estimation errors for this case are relatively small. The errors in the smoothed estimates of amplitudes Â_(1S) and Â_(2S) obtained from (93) may be even smaller than those in FIGS. 24 and 25.

Adaptive Kalman Filter-Correlation Detector (AKF-CD)

When the signal-to-noise ratio is relatively small and the initial frequency uncertainty is relatively large, there may be some small probability that the AKF estimation algorithm may not converge to the true frequency with relatively small estimation error. To avoid such a possibility, a correlation detector is used to validate the frequency estimates provided by the AKF.

In the AKF-CD architecture, the estimation interval of N_(s) samples is segmented into m_(s) segments of n_(s) samples each wherein in the special case n_(s) may be equal to N_(s). In this architecture, the AKF algorithm with various matrices described in equations (74) to (103) may be run for n_(s) samples to estimate {circumflex over (ω)}_(m)(k) and {circumflex over (α)}_(m)(k) for k=1, 2, . . . , n_(s); m=1, 2, . . . , N where N is the number of frequencies. From (79), the phase estimate {circumflex over (θ)}_(m)(k) is obtained as

{circumflex over (θ)}_(m)(k)={circumflex over (θ)}_(m)(k−1)+{circumflex over (ω)}(k);k=1,2, . . . ,n _(s)  (104)

In (104), {circumflex over (θ)}_(m)(0) may be set to 0. The complex valued signal z_(c)(k)=z_(i)(k)+jz_(q)(k); j=√{square root over (−1)} is correlated with the signal s_(m)(k) in a semi-coherent manner, where

s _(m)(k)=exp(−j2π{circumflex over (θ)}_(m)(k));k=1,2, . . . ,n _(s)  (105)

For the semi-coherent correlation, the interval n_(s) is divided into m_(c) segments of length n_(c), and the coherent correlation is computed for each of the m_(c) intervals as

$\begin{matrix} {{{{r_{m}^{c}(l)} = {\sum\limits_{{{k{({l - 1})}}n_{c}} + 1}^{l\; n_{c}}{{z_{c}(k)}{s_{m}(k)}}}};{l = 1}},2,\ldots \mspace{14mu},m_{c}} & (106) \end{matrix}$

In (106), the interval n_(c) is determined such that some bound on the expected frequency estimation error in Hz obtained after processing the n_(s) samples is much smaller than the F_(s)/n_(c) Hz wherein the bound on the expected frequency estimation error in Hz, for example, may be some multiple of the C-R bound. From (106), the correlation over the interval of n_(s) samples is obtained as

$\begin{matrix} {r_{m}^{i} = \left\{ {\sum\limits_{l = {l_{0} + 1}}^{m_{c}}{{r_{m}^{c}(l)}}} \right\}^{1/2}} & (107) \end{matrix}$

In (107), I₀ that may be 0 denotes the number of initial n_(c) length segments that are discarded in the computation of the incoherent correlation r_(m) ^(i). The number of samples l₀n_(c) accounts for the initial transient period where the estimation error is relatively high. For the case of α_(m)=0, where the frequency ω(k) is constant, the coherent correlation in (106) reduces to

$\begin{matrix} {{{{r_{m}^{c}(l)} = {\sum\limits_{k = {{{({l - 1})}n_{c}} + 1}}^{l\; n_{c}}{{z_{c}(k)}{\exp \left( {{- j}\; k\; {\hat{\omega}}_{m}} \right)}}}};{l = 1}},2,\ldots \mspace{14mu},m_{c}} & (108) \end{matrix}$

In (108), {circumflex over (ω)}₁ denotes the estimate of the normalized frequency in radians based on the processing of n_(s) samples. In this case, l₀ in (107) may be set to 0. In the ideal case of small frequency error and relatively small noise variance, the correlation in (107) is nearly equal to r_(m) given by

r _(m) ={A _(m) ²+2σ_(n) ² /n _(c)}^(1/2) ≅A _(m)  (109)

In the correlation detector, r_(m) ^(i) computed from (107) is compared to a correlation threshold γ_(m) ^(th) which may be equal to some fraction of an estimate of A_(m). If r_(m) ^(i) is greater than or equal to the threshold, the estimate is deemed to converge to some small error. If all the N frequency estimates do not satisfy the threshold conditions, the AKF algorithm described in equations (74) to (103) is repeated for the same initial n_(s) samples but with different random frequency initializations, wherein the initializations for those frequencies which satisfy the threshold conditions are set equal to their estimates obtained in the first run. The frequencies for which the threshold condition is not satisfied are initialized randomly over some appropriate interval; for example, over the interval (−B/4, B/4). In the absence of estimates of the individual A_(m), the threshold may be applied to the total power estimated as

$\begin{matrix} {P_{T} = {\sum\limits_{m = 1}^{N}\left( r_{n}^{i} \right)^{2}}} & (110) \end{matrix}$

The power estimated in (110) is compared with some fraction of its prior estimate P_(th) which may, for example, be obtained as

$\begin{matrix} {P_{th} \cong {{\frac{1}{n_{s}}{\sum\limits_{i = 1}^{n_{s}}{z_{c}}^{2}}} - {2\sigma_{n}^{2}}}} & (111) \end{matrix}$

If P_(T)>δP_(th) for some selected value of δ with 0<δ≦1, then the first part of the estimation procedure may be complete. Otherwise, the AKF algorithm in equations (74) to (103) may be repeated for the same initial n_(s) samples but with different random frequency initializations until either the threshold condition is satisfied or the number of trials exceed some specified threshold N_(t). A higher value of δ may in general require a higher number of trials.

Once the threshold condition is satisfied, each of the N frequencies is tracked by further processing of the measurements. In this phase of the algorithm, the second set of n_(s) complex measurements is shifted in frequency by the estimate {circumflex over (ω)}_(m)(n_(s)) for the m^(th) normalized frequency ω_(m)(n_(s)) obtained at the end of the first phase according to equation (112).

z _(c,m)(k)=z _(c)(k)exp(−jk{circumflex over (ω)} _(m)(n _(s)));k=n _(s)+1, . . . ,2n _(s)  (112)

The AKF algorithm processes the n_(s) samples of the measurements z_(cm)(k) to obtain the estimates of the frequency (ω_(m)(k)−{circumflex over (ω)}_(m)(n_(s)), k=n_(s)+1, . . . , 2n_(s). In processing the second set of n_(s) measurements, the parameter error covariance matrix P_(p)(k/k−1) may be increased by an appropriate value so as to increase the convergence rate. The estimates of the frequencies (ω_(m)(k)−{circumflex over (ω)}_(m)(n_(s)) thus obtained are adjusted by {circumflex over (ω)}_(m)(n_(s)) to account for the frequency shift providing the estimates for the frequency ω_(m)(k), k=n_(s)+1, . . . , 2n_(s). This procedure of shifting the frequency of the complex signal by the frequency estimate obtained at the end of the previous segment and applying the AKF to process the current segment and modifying the resulting estimates by the amount of frequency shift is repeated for the remaining m_(s)−2 segments. A further improvement in the estimates may be obtained by reprocessing all of the m_(s) segments N_(r)−1 times in a manner similar to the processing of the m_(s)−1 segments in the first run where N_(r) denotes the total number of runs with N_(r)≧1. For the case of time-varying frequency, the amount of frequency shift at the start of the second and consecutive runs needs to be appropriately adjusted.

In case of multiple frequencies, the signal z_(c)(k) may be segmented after the initial phase into M signals by the use of a polyphase filter or using FFT as in (94)-(96) such that the number of frequencies in any one segment is small and the dimension of the state vector x(k) in the AKF-MF is relatively small for processing any one segment.

FIG. 26 is a block diagram illustrating another embodiment of the disclosure architecture 2600, where a correlation detection is performed to assess if the estimated frequency is close to the true frequency as described in (104)-(111). If the correlation threshold condition is not satisfied, the input signal may be processed again starting with a new initial estimate for the frequency. The input signal may be stored in a memory 2610 so that if required the measurements can be reprocessed. When the number of available samples is not highly restricted, the storage of the input samples is not necessary, because the iterations can be performed with real time input samples. The architecture 2600 may include a switch S₁, depending upon the state of the control signal I₆, that permits processing of either the real time input data or that from the memory. Switch S₂, depending upon the state of the control signal I₇, may route the complex signal z_(c)(k) to either a first stage AKF-MF 2630 via a complex to real converter 2620 or to second stage processing. Switch S₃, depending upon the state of the control signal I₈, may route the complex signal z_(c)(k) to either a bank of correlation detectors CTD1, . . . , CTDN 2640(1)-(N) (collectively referred to herein as 2640) or to the bank of stage 2 adaptive Kalman filters AKF1, . . . , AKFN 2650(1)-(N) (collectively referred to herein as 2650).

The architecture 2600 may further include an algorithm control block 2660 that may be configured to generate various control signals including the R/W (read/write) command to the memory 2610 and an MA (memory address) when needed. The number of available input signal samples N_(s) may be divided into m_(s) segment each of length n_(s). During the first interval of n_(s)T_(s) seconds, the complex input z_(c)(k) is connected to the complex to real converter that outputs a dimension 2 vector z(k) with its elements equal to the real and imaginary parts respectively of the signal z_(c)(k). The signal z(k) is input to the first stage AKF-MF 2630 that processes the n samples of the signal z(k) to provide the estimates of various frequencies {circumflex over (ω)}_(m)(k) and frequency derivatives {circumflex over (α)}_(m)(k) for m=1, 2, . . . , N. The operation of the AKF-MF block 2630 has been previously described with reference to FIG. 21.

Still referring to FIG. 26, the estimate of the m^(th) frequency {circumflex over (ω)}_(m)(k) and its derivative {circumflex over (α)}_(m)(k) may be provided to the correlation threshold detector CTDm block 2640 for m=1, 2, . . . , N. The CTDm block 2640 may compute the correlation r_(m) ^(i hu i) _(n) between the input signal and the complex exponential signal at frequency {circumflex over (ω)}_(m)(k) according to (104)-(108) and may compare the correlation with a predetermined threshold and further generate a signal t_(m) that is indicative of the comparison at the output. The signal t_(m) may be equal to 1 if the threshold condition is satisfied; otherwise it may be equal to 0. The signals t₁, t₂, . . . , t_(N) may, therefore, be provided to the algorithm control block 2660. If any of the t_(m) values are equal to 0, the procedure is repeated with the stored n_(s) samples read from the memory 2610 and with the initial frequency estimates provided to the first stage AKF-MF 2630 selected in a random and independent manner from a selected distribution. For example, the initial frequency estimates may be selected from (−B/2 B/2) with a uniform distribution. For the frequencies for which the threshold condition is satisfied, the initial frequency estimates may be made equal to the corresponding estimates obtained from the preceding run. This process of reading the n_(s) samples from the memory, processing them by the first stage AKF-MF 2630, evaluating correlations and comparing the correlation values with the thresholds in blocks CTD1, . . . , CTDN 2640 may be repeated until all t_(m) values are equal to 1 or the number of such trials exceeds some specified value N_(t) which may, for example, be equal to 4. In an alternative embodiment, instead of applying thresholds to individual correlation values, the threshold may be applied to the sum of the squares of the individual correlation values evaluated in (110), and the threshold may be some fraction of the total power P_(T) which may be either known or estimated from the measurements as in (111). At the completion of the first process of the algorithm as described herein, the measurements may be processed by second stage AKFs 2650.

The samples of the input complex signal z_(c)(k) are inputted to a bank of stage 2 AKF1 to AKFN 2650 through the activation of switches S₁, S₂, and S₃ starting with the second segment of n_(s) samples in the first run of the second stage. Referring now to FIG. 27, a block diagram of an example AKFm 2700 is illustrated and discussed. They AKFm 2700 may be used as the second stage AKFs 2650 of FIG. 26. The input complex signal z_(c)(k) may be multiplied by the output exp [−jω_(m) ^(L)k] of an oscillator with frequency ω_(m) ^(L). The product of the complex input and the oscillator output, z_(cm)(k) may be connected to a complex to real converter 2720 that may output a dimension 2 vector z(k) with its elements equal to the real and imaginary parts respectively of the signal z_(cm)(k). The signal z(k) is input to an AKF 2730 that processes the n_(s) samples of the signal z(k) to provide estimates of various frequencies {circumflex over (ω)}_(m) ^(r)(k) and frequency derivatives {circumflex over (α)}_(m) ^(r)(k) for m=1, 2, . . . , N where {circumflex over (ω)}_(m) ^(r)(k) is the estimate of the difference between the frequency ω_(m)(k) and the oscillator frequency ω_(m) ^(L) that may be adjusted at the end of n_(s)T_(s) second intervals. During the first run, i_(r)=1, of the second stage, the oscillator frequency may be set equal to the estimate of the frequency ω_(m)(k) for k=n_(s), 2n_(s), . . . , (m_(s)−1)n_(s) where m_(s) is the number of segments. In the second and subsequent runs of step 2, i_(r)>1, and for the case when ω_(m)(k) is constant over the period of N_(s) samples, the oscillator frequency at the beginning of the first segment is set equal to the estimate of ω_(m) obtained at the end of the previous run. The signals I₁ to I₅, starting with initial values of zero, may change at the end of n_(s)Ts second intervals by the clock signal CK2 (not shown) that may be incorporated in the algorithm control block 2660 of FIG. 26. In one non-limiting example, I₁=1 if k=n_(s) and i_(r)=1, and ω_(m) ^(L) is set equal to the estimate of frequency {circumflex over (ω)}_(m) ⁰(k) obtained from the stage 1 AKF-MF at the end of processing by the stage 1 AKF-MF as the output of the offset due to nonzero α_(m) is zero. As a result, the outputs of the delay blocks in accumulators 1 and 2 of FIG. 27 are equal to 0, and thus ω_(m) ^(L)={circumflex over (ω)}_(m) ⁰. The signal I₂ is equal to 1 if either k=i_(s)n_(s), i_(s)>1 or i_(r)>1 otherwise I₂=0.

When I₂=1, the frequency estimate {circumflex over (ω)}_(m) ^(r)(k) may be added on to the previous value of corn ω_(m) ^(L) providing an updated value for ω_(m) ^(L). Thus ω_(m) ^(L) may be set to {circumflex over (ω)}_(m) ⁰(k) in the first run at k=n_(s) and from there on it may be modified by {circumflex over (ω)}_(m) ^(r)(k) at intervals of n_(s)T_(s) seconds. The sum of {circumflex over (ω)}_(m) ^(r)(k) and ω_(m) ^(L) at the end of a previous n_(s) length segment provides the frequency estimates during any run and any segment. These estimates are time multiplexed with the estimates {circumflex over (ω)}_(m) ⁰(k) from stage 1 in MUX1 controlled by the algorithm control block details, which are not shown. Thus if n_(r)=1, then the first segment final estimates are obtained from {circumflex over (ω)}_(m) ⁰(k) with the final estimates for the subsequent segments provided by the second stage. On the other hand, if n_(r)>1, then all of the final estimates come from stage 2.

I₄ may be equal to 1 if k=n_(s) and i_(r)>1. Thus the signal ξ₁ may be equal to {circumflex over (α)}_(m) ⁰(k) if k=n_(s) and i_(r)=1; equal to {circumflex over (α)}_(m) ^(r)(k) if k=n_(s) and i_(r)>1; and equal to 0 otherwise. An accumulator 2 2740 output may be set equal to ξ₁ at k=n_(s) for any value of i_(r). The signal I₅ is equal to 1 if k=i_(n)n_(s), i_(s)>1. If I₅=1, the value {circumflex over (α)}_(m) ^(r)(k) is added to the accumulated output. The signal I₃ is equal to 1 if k=N_(s) and is 0 otherwise. At the end of N_(s) samples, an accumulator 2740 output 42 is the sum of the derivatives during the m_(s) segments wherein it is assumed that during each segment the derivative is nearly constant. The accumulator 2750 output ξ₂ times n_(s) is subtracted from ξ₃ to provide the oscillator frequency such that the oscillator frequency is nearly equal to the input signal frequency at the beginning of n_(s) sample segments. The initial frequency estimate for the AKF 2730 is reset to 0 at the end of each n_(s) sample segment in each run, and the covariance matrix P(0/0) is reset to some specified value at the start of each run.

FIG. 28 illustrates an example block diagram of the correlation threshold detector CTD m 2800. The CTD m 2800 may be used as the CTD m 2640 of FIG. 26. The time-varying frequency estimates {circumflex over (ω)}_(m) ⁰(k) obtained during the last trial of the first stage may be input to an accumulator 2810. The output of the accumulator {circumflex over (θ)}_(m)(k) representing the phase estimate may be input to an exp( ) block 2820 that may generate the complex exponential signal s_(m)(k)=exp[−j{circumflex over (θ)}_(m)(k)] at the output. The signal s(k) may be multiplied by the input complex signal z_(c)(k) in a multiplier 2830. The output of the multiplier 2830 may be averaged over an interval of n_(c) samples where n_(c) is a subinteger multiple of n_(s) with n_(s)=m_(c)n_(c) and with m_(c) equal to an integer that may be equal to 1. The output of an averaging block 2840 may be equal to the coherent correlation r_(m) ^(c)(l) over the l^(th) interval of n_(c) samples according to (106). The coherent correlation may be provided to a cascade of an absolute value squared block 2850, an averaging block 2860, and a square root computation block 2870, providing the semi-coherent correlation r_(m) ^(i) over the interval of n_(s) samples according to (107). The semi-coherent correlation r_(m) ^(i) may be input to a threshold detector block 2880 that may compare the input against a threshold value γ_(m) ^(th). If the input to the threshold detector block 2880 exceeds the threshold r_(m) ^(th), then the output t_(m) of the threshold detector block 2880 may be equal to 1. Otherwise, the output t_(m) of the threshold detector block 2880 may be equal to 0. The output t_(m) may be provided to the algorithm control block 2660 of FIG. 26, which may determine the actions to be performed by the AFK-CD architecture 2600 based on the value of t_(m).

Simulation Results

FIGS. 29-33 show example plots of simulation results for the performance of the AKF-CD algorithm for the case of a single frequency with the signal-to-noise ratio of 10 dB. The total number of samples for this non-limiting example is 10. Both n_(s) and n_(c) are equal to 1. In the first phase, the value of N_(t) denoting the number of maximum trials is 6. The frequency is selected randomly with a uniform probability density function (pdf) in the interval (−200, 200) Hz with the sampling rate F_(s) equal to 400 Hz.

The amplitude A is equal to 1 volt. The correlation threshold γ_(m) ^(th) in the first phase of the algorithm is 0.5. In the first trial of the first phase of the algorithm, the initial frequency estimate is selected to be 0 Hz; in the subsequent trials, the initial estimate is made randomly with a uniform pdf in the range (−40, 40 Hz). The initial covariance matrices are selected as P(0/0)=2 I₂ and P_(p)(0/0)=2 I₂ with I₂ equal to the 2×2 identity matrix. At the end of the first phase of the algorithm, the P_(p)(0/0) is reset to P_(p)(0/0)=0.05 I₂ to speed up the convergence rate of the AKF. After that, it is updated according to AKF update equation (26).

The simulations were performed with 50 random frequency selections from the range of (−200, 200) Hz according to the uniform probability density function (pdf). For each such frequency selection, the algorithm was simulated with 100 independent noise sequences. FIG. 29 shows the RMS frequency error in Hz obtained during the last trial of the first phase of the algorithm for each of the 50 frequency selections. FIG. 30 plots the result when the AKF algorithm is repeated a second time after frequency shift according to (112). As may be inferred from these figures, for each frequency selection, the AKF-CD algorithm converges to a relatively small frequency estimation error. FIGS. 31 and 32 plot the RMS error obtained by averaging the errors obtained in the 50 frequency selections. The results are also compared with the C-R bound given by (49a) for the same signal-to-noise ratio and the maximum frequency B=200 Hz. As may be seen from FIG. 33, the difference between the AKF-CD algorithm and the C-R bound is small. It may be emphasized that the initial frequency estimates in FIGS. 31 and 32 are based on the complete data of 10 samples and, thus, it is the final error at the end of 10 samples that is more meaningful in terms of the comparison with the C-R bound. FIG. 33 shows the 50 frequencies that were selected in the simulations. FIG. 34 shows the number of maximum trials in the first phase of the algorithm for each of the 50 selected frequencies showing that only 6 out of the 50 frequency selections required retrials for some noise sequences.

FIGS. 35 and 36 plot the RMS frequency error averaged over all 50 initial frequency selections for the case of SNR=7 dB and the frequencies selected from the range of (−100, 100) Hz with N_(s)=20 samples. All of the algorithm parameters are the same as those for the 10 dB SNR case with n_(s)=n_(c)=10 and γ_(m) ^(th)=0.4.

FIG. 37 shows the RMS frequency error in Hz obtained during the second run of the algorithm for each of the 50 frequency selections for the case of SNR=5 dB and the frequencies selected from the range of (−100, 100) Hz with N_(s)=20 samples. All of the algorithm parameters are the same as those for the 7 dB SNR case for the first run. The RMS error for most of the 50 cases lies between 2 Hz and 8 Hz. FIG. 38 plots the RMS frequency error averaged over all 50 initial frequency selections for the case of SNR=5 dB. The result for the second run (not shown) is similar. In this case, although the error in absolute terms is relatively small, there is a considerable difference between the estimation error obtained by the AKF-CD algorithm and the C-R bound. Further embodiments of the disclosure teach the AKF-FFT-CD algorithm which provides estimation errors close to the C-R bound for an SNR even smaller than 0 dB.

Frequency Estimation for Very Low Signal-to-Noise Ratio Conditions

For relatively very low signal-to-noise ratio conditions, the Kalman filter based frequency estimation algorithm may not converge to the correct frequency. Instead it may converge to a frequency with an estimation error in the range of −F_(s)/2 to F_(s)/2 with some non-zero probability, i.e., the algorithm may diverge. Thus the algorithm converges to the correct frequency for some noise sequence and the initial estimate, while for some other noise sequence and/or initial frequency estimates, it may converge to an estimate with a relatively large error with some non-zero probability. Moreover, the smaller the signal-to-noise ratio, the relatively higher is the probability of divergence. For this case, another embodiment of the disclosure is presented that provides good convergence even under very low signal-to-noise ratio conditions.

FFT-AKF-CD Algorithm

In this embodiment of the disclosure, the range of frequency uncertainty F_(s)=2B is divided into M intervals of length Δf=F_(s)/M. The integer M is selected such that the ratio Mγ=MA²/(2σ_(n) ²), with γ=A²(2σ_(n) ²) denoting the SNR, is higher than some specified threshold value γ_(th) and (N_(s)/M) is an integer. For example, with γ=0.25 and γ_(th)=5, M=20, let z_(c)(k) denote the complex valued signal as

z _(c)(k)=z _(i)(k)+jz _(q)(k);j≡√{square root over (−1)}  (113)

The signal z_(c)(k) is correlated with complex exponential functions of frequency f_(m)=−B+mΔf; m=0, 1, . . . , M−1 over an interval of M=F_(s)/Δf samples providing the correlation values

$\begin{matrix} {{{{r_{m}(0)} = {\frac{1}{M}{\sum\limits_{i = 1}^{M}{{z_{c}(i)}{\exp \left( {{- {j2\pi}}\; f_{m}{iT}_{s}} \right)}}}}};}{{{f_{m} = {{- B} + {m\; \Delta \; f}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & (114) \end{matrix}$

The expression in (114) can also be evaluated in terms of the discrete Fourier transform (DFT) or the fast Fourier transform (FFT) by substituting the expression for f_(m) in the expression for r_(m)(0). Thus

$\begin{matrix} \begin{matrix} {{r_{m}(0)} = {\frac{1}{M}{\sum\limits_{i = 1}^{M}{{z_{c}(i)}{\exp \left( {{j2\pi}\; {BiT}_{s}} \right)}{\exp \left( {{- j}\; 2\pi \; i\; m\; \Delta \; {fT}_{s}} \right)}}}}} \\ {= {\frac{1}{M}{\sum\limits_{i = 1}^{M}{{z_{c}(i)}\left( {- 1} \right)^{i}{\exp \left( {{- j}\; 2\pi \; {m/M}} \right)}}}}} \\ {{{\exp \left\lbrack {{- j}\; 2{\pi \left( {i - 1} \right)}{m/M}} \right\rbrack};}} \end{matrix} & (115) \\ {{m = 0},1,\ldots \mspace{14mu},{M - 1}} & \; \end{matrix}$

From (115), the correlation value r_(m)(0) may be expressed as

$\begin{matrix} {{r_{m}(0)} = {\frac{1}{M}{\exp \left( {{- j}\; 2\pi \; {m/M}} \right)}{z_{0\; f}(m)}}} & (116) \end{matrix}$

where z_(0f)(f) is the discrete Fourier transform of z_(m)(i) given by

$\begin{matrix} {{{{z_{{0f}\;}(m)} = {\sum\limits_{i = 0}^{M - 1}{{z_{m}(i)}{\exp \left( {{- {j2\pi}}\; i\; {m/M}} \right)}}}};}{{{z_{m}(i)} = {\left( {- 1} \right)^{i + 1}{z\left( {i + 1} \right)}}};}{{m = 0},1,\ldots \mspace{14mu},{M - 1}}} & (117) \end{matrix}$

In (117), the sequence z_(m)(i) is obtained by multiplying the alternative elements of the sequence z_(c)(i) by −1. The DFT of z_(m)(i) in (117) can also be evaluated by the M-point fast Fourier transform of z_(m)(i).

With N_(I)=N_(s)/M, the correlation values are evaluated over the subsequent (N_(I)−1) intervals by replacing the subsequence [z(1) z(2), . . . , z(M)] by the subsequence of z(k) for the respective interval. The estimate of the average power present during the interval of N samples of z_(c)(k) is obtained by averaging the absolute value squared |r_(m)|² over the N_(I) intervals for m=0, 1, . . . , M−1, i.e.,

$\begin{matrix} {P_{m} = {\frac{1}{N_{I}}{\sum\limits_{i = 0}^{N_{I} - 1}{{r_{m}(i)}}^{2}}}} & (118) \end{matrix}$

Substitution of z_(c)(i) from (3), (4), and (113) in (115) yields

$\begin{matrix} {{{r_{m}(0)} = {{s_{m}(0)} + {n_{m}(0)}}}{where}} & (119) \\ {{{{s_{m}(0)} = {\frac{1}{M}{\sum\limits_{i = 1}^{M}{A\; ^{j\; \phi}{\exp \left( {{j2\pi}\; f_{d\; m}{iT}_{s}} \right)}}}}};}{{{f_{d\; m} = {f_{0} - f_{m}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & (120) \end{matrix}$

Evaluation of the sum in (120) results in

$\begin{matrix} {{{{s_{m}(0)} = {\frac{A\; ^{j\; \phi}}{M}{{\exp \left\lbrack {{j\left( {M + 1} \right)}\pi \; f_{d\; m}T_{s}} \right\rbrack}\left\lbrack \frac{\sin \left\lbrack {M\; \pi \; f_{d\; m}T_{s}} \right\rbrack}{\sin \left( {\pi \; f_{d\; m}T_{s}} \right)} \right\rbrack}}};}{{m = 0},1,\ldots \mspace{14mu},{M - 1}}} & (121) \end{matrix}$

For −Δf≦f_(dm)<Δf, δf=1/(MTs) and M>>1, the absolute value of the expression in (121) may be approximated by

$\begin{matrix} {{{{{s_{m}(0)}} \cong {A{\frac{\sin \left( {\pi \; {f_{d\; m}/\Delta}\; f} \right)}{\left( {\pi \; {f_{d\; m}/\Delta}\; f} \right)}}}};{{{- \Delta}\; f} \leq f_{d\; m} < {\Delta \; f}};}{{m = 0},1,\ldots \mspace{14mu},{M - 1}}} & (122) \end{matrix}$

For the case when

f _(dm)=2nΔf+f _(δm) ;−Δf≦f _(δm) <Δf;n an integer with 0<|n|<M/4  (123)

The absolute value of s_(m)(0) in (122) may be approximated as

$\begin{matrix} {{{{{{{{s_{m}(0)}} \cong {A{\frac{\sin \left( {\pi \; {f_{\delta \; m}/\Delta}\; f} \right)}{M\; {\sin \left( {2\pi \; {n/M}} \right)}}}} \cong {\frac{\kappa \; A}{2\pi \; n}{{\sin \left( {\pi \; {f_{\delta \; m}/\Delta}\; f} \right)}}}};} - {\Delta \; f}} \leq f_{\delta \; m} < {\Delta \; f}};{0 < {n} < \frac{M}{4}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}} & (124) \end{matrix}$

where κ is a constant in the range of 1 and 2. The noise term n_(m)(0) in (119) is given by

$\begin{matrix} {{{{n_{m}(0)} = {\frac{1}{M}{\sum\limits_{i = 1}^{M}{{n(i)}{\exp \left( {{- j}\; 2\pi \; f_{m}{iT}_{s}} \right)}}}}};{{n(i)} = {{n_{i}(i)} + {{jn}_{q}(i)}}};}{{{j = \sqrt{- 1}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & (125) \end{matrix}$

From (125) one obtains

$\begin{matrix} {{{{{n_{m}(0)}}^{2} = {{{n_{m}(0)}{n_{m}^{*}(0)}} = {{\frac{1}{M^{2}}{{n(i)}}^{2}} + {\frac{2}{M^{2}}{\sum\limits_{i = 1}^{M}{\sum\limits_{\underset{k > i}{{k = 1},}}^{M}{{Re}\left\{ {{n(i)}{n^{*}(k)}} \right\}}}}}}}};}\mspace{20mu} {{{{n(i)} = {{n_{i}(i)} + {{jn}_{q}(i)}}};{j = \sqrt{- 1}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & (126) \end{matrix}$

In (126), Re( ) denotes the operation of taking the real part of the argument. As the sequence n(i) is zero mean and independent, it follows from (126) that

$\begin{matrix} {{{{E\left\{ {{n_{m}(0)}}^{2} \right\}} = \frac{2\sigma_{n}^{2}}{M^{2}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}} & (127) \end{matrix}$

wherein equation (127) E denotes the expected value operator. From (125) it follows that n_(m)(0) and n_(l)(0) are uncorrelated and thus due to their Gaussian distribution are independent random variables as

$\begin{matrix} {{{{E\left\lbrack {{n_{m}(0)}{n_{k}^{*}(0)}} \right\rbrack} = {\frac{1}{M^{2}}{\sum\limits_{i = 1}^{M}{{E\left\lbrack {{n(i)}}^{2} \right\rbrack}{\exp \left\lbrack {j\; 2\pi \; \left( {f_{k} - f_{m}} \right){iT}_{s}} \right\rbrack}}}}};}{m,{k = 0},1,\ldots \mspace{14mu},{M - 1}}} & (128) \end{matrix}$

For k≠m, the summation in (128) may be evaluated as

$\begin{matrix} \begin{matrix} {{{E\left\lbrack {{n_{m}(0)}{n_{k}^{*}(0)}} \right\rbrack} = {\frac{2\sigma_{n}^{2}}{M^{2}}{\sum\limits_{i = 1}^{M}{\exp \left\lbrack {j\; 2\pi \; f_{d}{iT}_{s}} \right\rbrack}}}};{f_{d} = {{f_{k} - f_{m}} = {\left( {k - m} \right)\Delta \; f}}}} \\ {= {\frac{2\sigma_{n}^{2}}{M^{2}}{\exp \left\lbrack {{j\left( {M + 1} \right)}\pi \; f_{d}T_{s}} \right\rbrack}\frac{\sin \left( {\pi \; {Mf}_{d}T_{s}} \right)}{\sin \left( {\pi \; f_{d}T_{s}} \right)}}} \\ {= {\frac{2\sigma_{n}^{2}}{M^{2}}{\exp \left\lbrack {{j\left( {M + 1} \right)}\pi \; f_{d}T_{s}} \right\rbrack}\frac{\sin \left\lbrack {\pi \left( {k - m} \right)} \right\rbrack}{\sin \left\lbrack {{\pi \left( {k - m} \right)}/M} \right\rbrack}}} \end{matrix} & (129) \end{matrix}$

The last term in (129) is zero as |k−m|≦M−1 resulting in

E[n _(m)(0)n* _(k)(0)]=0;k≠m  (130)

Taking the absolute value squared on both sides of (119) yields

|r _(m)(0)|² =|s _(m)(0)|² +|n _(m)(0)|²+2Re{s* _(m) n _(m) };m=0,1, . . . ,M−1  (131)

From (125) to (130), the expression in (131) may be expressed as

$\begin{matrix} {{{{{r_{m}(0)}}^{2} = {{{s_{m}(0)}}^{2} + \frac{2\sigma_{n}^{2}}{M} + {\xi_{m}(0)}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}} & (132) \end{matrix}$

In (132) ξ_(m)(0) for m=0, 1, . . . , M−1 are zero mean independent random variables, and s_(m)(0) is given by (122). The average power at frequency f_(m) is estimated by

$\begin{matrix} {{{P_{m} = {{\frac{1}{N_{I}}{\sum\limits_{i = 0}^{N_{I} - 1}{{r_{m}(i)}}^{2}}} = {{{s_{m}(0)}}^{2} + \frac{2\sigma_{n}^{2}}{M} + \xi_{a,m}}}};}{{{\xi_{a,m} = {\frac{1}{N_{I}}{\sum\limits_{i = 0}^{N_{I} - 1}{\xi_{m}(i)}}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & (133) \end{matrix}$

In (133), ξ_(a,m) for m=0, 1, . . . , M−1 are zero mean independent random variables with their variance decreasing inversely with increasing N_(I). The unknown frequency f₀ may be estimated by maximization of P_(m) over m. However, for the case of low SNR γ, and limited number of samples N and thus small N_(I), ξ_(a,m) has significant variance resulting in a significant probability of selecting an incorrect value of m and thus causing a relatively large frequency estimation error f₀−f_(m). Moreover, even when the value of m is correctly selected, there is an estimation error in the range of −Δf/2 and −Δf/2. From (133) the value of |s_(m)(0)|² may be only A² sin c²(0.5)=0.4 A² when f₀ is in the middle of any two of the frequencies f_(m) resulting in about a 4 dB loss in signal power compared to the case when the frequency f₀ is equal to one of the frequencies f_(m) where f_(m) is given by (114). Therefore, the probability of selecting an incorrect frequency f_(m) is much higher in the case when the unknown frequency falls in between the two frequencies f_(m) compared to the latter case.

In order to minimize the probability of selecting an incorrect frequency G, a number N_(f) of frequencies {f₀ ^(s), f₁ ^(s), . . . , f_(N) _(f) ₋₁ ^(s)} are selected from the set of frequencies {f₀, f₁, . . . , f_(m-1)} defined in (114) with the highest average power P_(m) defined in equation (133). The adaptive Kalman filter algorithm described in equations (12)-(36) is repeated N_(f) times with the stored in-phase and quadrature observations z_(i)(k) and z_(q)(k) defined in equations (3) and (4) with the initial frequency estimates equal to the f_(m) ^(s), m=0, 1, . . . , N_(f)−1 and with reduced initial prediction error covariance matrix P_(p)(0/0) reduced by a factor of the order M². The initial covariance matrix is selected equal to εI₂ with I₂ denoting the 2×2 identity matrix. Thus 8 is the variance of the error in the estimates cos [2π(f0+δf)Ts] and sin [2π(f0+δf)Ts] for the parameters β₁ and β₂ respectively, where f₀ denotes the true frequency and δf denotes the error in the frequency estimate with its variance equal to σ_(f) ². With the approximation

cos [2π(f ₀ +δf)Ts]−cos(2πf ₀ Ts)≅−2πT _(s) δf sin(2πf ₀ Ts)  (134)

the estimate for ε is given by

$\begin{matrix} {ɛ = {{\frac{4\pi^{2}}{F_{s}^{2}}\sigma_{f}^{2}{E\left\lbrack {\sin^{2}\left( {2\pi \; f_{0}T_{s}} \right)} \right\rbrack}} = {\frac{2\pi^{2}}{F_{s}^{2}}\sigma_{f}^{2}}}} & (135) \end{matrix}$

The second equality in (76) follows from the fact that the frequency f₀ itself may have any value in the interval (−F_(s)/2, F_(s)/2) and thus the argument of the sin function may lie in the interval (−π, π) resulting in the average for sin²( ) equal to 0.5. If the frequency error δf can have any value in the interval (−Δf/2, Δf/2), then σ_(f) ² may be approximated by

${\frac{1}{3}\left( {\Delta \; {f/2}} \right)^{2}} = {\left( {\Delta \; f} \right)^{2}/12.}$

Substitution for σ_(f) ² in (135) results in the estimate for ε equal to π²/(6M²) or approximately 1/m². For M=20, this estimate is equal to 0.0025. This is much smaller compared to the value for P_(p)(0/0)=4 I₂ used in the EKF without the FFT step. The estimate of the 8 derived in (135) applies to that particular initial frequency estimate f_(m) ^(s) that is close to the true frequency f₀ with the error smaller than Δf/2 in its magnitude. The estimate for P_(p)(0/0) is based on the initial knowledge and needs to be only approximate for the AKF to converge. Denoting by f_(m) ^(K), m=0, 1, . . . , N_(f)−1 the final frequency estimates obtained by the AKF corresponding to the N_(f) initial frequency estimates f_(m) ^(s), m=0, 1, 2, . . . , N_(f)−1, an estimate of the power P_(m) ^(K) is obtained similar to that for the P_(m) in equation (133). Thus,

$\begin{matrix} {{{P_{m}^{K} = {\frac{1}{N_{I}}{\sum\limits_{i = 0}^{N_{I} - 1}{{r_{m}^{K}(i)}}^{2}}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}} & \left( {136a} \right) \\ {{{{r_{m}^{K}(i)} = {\frac{1}{M}{\sum\limits_{k = 1}^{M}{{z_{c}\left\lbrack {k + {\left( {i - 1} \right)M}} \right\rbrack}{\exp \left( {{- j}\; 2\pi \; {kf}_{m}^{K}T_{s}} \right)}}}}};}{{{j = \sqrt{- 1}};{m = 0}},1,\ldots \mspace{14mu},{{N_{f} - 1};{i = 0}},1,\ldots \mspace{11mu},{N_{I} - 1}}} & \left( {136b} \right) \end{matrix}$

In the absence of any initial estimate of the received signal power level A², the frequency f_(m) ^(K) corresponding to the highest value of P_(m) ^(K) is selected for further processing. However, with some estimate of the signal power level A², detection is performed on the highest value of P_(m) ^(K) to eliminate the possibility that none of the frequencies f_(m) ^(K) are close to the true frequency f₀. The probability of this is a function of M, N_(I), Nf, and the SNR γ and may be indicated as the highest power out of the M values P_(m) ^(K) being relatively very small.

For the frequency f_(m) ^(K) close to f₀, the expected value of the corresponding power P_(m) ^(K) obtained from (136) or from the equations (121) and (133) with f_(dm) in (121) equal to 0 will be close to P_(a)=A²+2σ_(n) ²/M. The actual power level may have mean P_(a) with an error with a variance that is a function of N_(I) and γ. The actual power will exceed the value P_(a) with a probability of 0.5. Thus a threshold value P_(T) on the power level P_(m) ^(K) can determine whether or not the corresponding frequency f_(m) ^(K) is close to f_(m). However, if P_(T) is too high, one may miss detecting the correct frequency f_(m) ^(K) whereas lowering the threshold to a relatively small value may result in a false detection. As an example, with A²=1, σ_(n) ²=2.5 corresponding to the SNR γ=0.2, and with M=20, one obtains P_(a)=1.25 and a threshold value of P_(T)=0.8 may be selected. If the highest value of P_(m) ^(K), m=0, 1, . . . , M−1, does not exceed P_(T), then the sum of the two highest powers P_(m) ^(K) is compared with the threshold P_(T2). If the sum does exceed the threshold P_(T2) and the corresponding two frequencies are within Δf/2 of each other, then the frequency with the highest power P_(m) ^(K) among the two frequencies is accepted as the correct intermediate estimate of the frequency f₀. Alternatively the average value of the two frequencies may be taken as the correct intermediate estimate of the frequency f₀. For the example with P_(a)=1.25, a value for P_(T2) equal to 1 is selected. However, if none of the two threshold conditions are satisfied then the received sequence z_(c)(k) is further processed as follows.

For a specified number of trials N_(r)=2^(K) for some integer κ≧0, the steps of correlating the received sampled signal z_(c)(k) with the complex exponential signals with M frequencies f_(m)=−B+mΔf; m=0, 1, . . . , M−1, selecting N_(f) of these frequencies with the highest correlation values, running the AKF with each of these N_(f) frequencies as the initial frequency estimates, correlating z(k) with the N_(f) final frequency estimates provided by the AKF, and comparing the correlation values with the two thresholds, are repeated until the threshold on the correlation value is satisfied or the number of such runs exceeds N_(r-1). In each such run, the M frequencies f_(m) defined in (114) are offset by a different value of δf. The offset values of δf in different runs are selected from the set of values {i Δf/N_(r); i=1, 2, . . . , N_(r)−1}. However, the sequence in which these offset values may be taken may not be in an increasing order. For example, with N=2^(κ) for an integer κ, the values may be taken in the order [2^(κ-1), 2^(κ-2)×(1, 3), . . . , (1, 3, . . . , N_(r)−1)]Δf/N_(r). For example with N_(r)=8, the order is [4, 2, 6, 1, 3, 5, 7]Δf/8 or

$\left\lbrack {\frac{1}{2},\frac{1}{4},\frac{3}{4},\frac{1}{8},\frac{3}{8},\frac{5}{8},\frac{7}{8}} \right\rbrack \Delta \; {f.}$

The correlation P_(m) ^(d) between z_(c)(k) and the complex exponential signals with M frequencies f_(m) ^(d)=−B+mΔf+δf; m=0, 1, . . . , M−1, can be obtained in terms of generalized FFT as for the case of δf=0.

$\begin{matrix} {{{P_{m}^{d} = {\frac{1}{N_{I}}{\sum\limits_{i = 0}^{N_{I} - 1}{{r_{m}^{d}(i)}}^{2}}}};{m = 0}},1,\ldots \mspace{14mu},{M - 1}} & (137) \\ {{r_{m}^{d}(i)} = {\frac{1}{M}{\exp \left( {{- j}\; 2\pi \; {m/M}} \right)}{z_{if}^{d}(m)}}} & (138) \\ {{{{z_{if}^{d}(m)} = {\sum\limits_{k = 1}^{M}{{z_{c}^{d}\left\lbrack {k + {\left( {i - 1} \right)M}} \right\rbrack}{\exp \left( {{- j}\; 2\pi \; k\; {m/M}} \right)}}}};}{{i = 0},1,\ldots \mspace{14mu},{N_{I} - 1}}} & (139) \\ {{{{z_{c}^{d}(k)} = {\left( {- 1} \right)^{k + 1}{z_{c}\left( {k + 1} \right)}{\exp \left\lbrack {{- {j2\pi}}\; {{kl}/\left( {MN}_{r} \right)}} \right\rbrack}}};}{{{{\delta \; f} = \left( {1\; \Delta \; {f/N_{r}}} \right)};{m = 0}},1,\ldots \mspace{14mu},{M - 1}}} & \; \end{matrix}$

In equation (139), z_(if) ^(d)(m) m=0, 1, . . . , M−1, is the DFT of the i^(th) segment of length M of the modified signal z_(c) ^(d)(k) obtained from z_(c)(k) as shown in equation (139) and thus can be evaluated by an FFT algorithm.

Denoting by f_(I) the estimate obtained by the combined FFT and EKF algorithms, a further refinement in the estimate is achieved by demodulating the signal z_(c)(k) by the complex exponential signal at frequency f_(I) which is equivalent to changing the frequency of the signal to f_(r)=(f₀−f_(I)), averaging the resulting signal over segments of length M, and processing the averaged signal by the AKF. Thus

$\begin{matrix} {{{{z_{s}(k)} = {{z_{c}(k)}{\exp \left\lbrack {{- {j2\pi}}\; {{kf}_{I}/F_{s}}} \right\rbrack}}};{k = 1}},2,\ldots \mspace{14mu},N_{s}} & (140) \\ {{{{z_{a}(k)} = {\frac{1}{M}{\sum\limits_{i = 1}^{M}{z_{s}\left\lbrack {i + {\left( {k - 1} \right)M}} \right\rbrack}}}};{k = 1}},2,\ldots \mspace{14mu},{N_{I} - 1}} & (141) \end{matrix}$

In (141), the signal z_(s)(k) is averaged over M consecutive samples thus reducing the sampling rate to F_(sa)=F_(s)/M. This is in view of the fact that in the absence of a detection error, the frequency estimation error in f_(I) is limited in magnitude to Δf/2 instead of F_(s)/2. Thus the sampling rate is reduced by a factor of F_(s)/Δf=M. The averaging process reduces the noise variance also by the factor M. However, the normalized frequency uncertainty [(f₀−f_(I))F_(sa)] lies in the range of (−π, π) and therefore the initial covariance matrix P(0/0) may be set equal to ε_(a)I₂ with ε_(a)=(π/3)²≅1 assuming a Gaussian distribution for the initial frequency estimation error with 3σ value equal to π. In the AKF, the sampling time T_(s) is replaced by T_(sa)=MT_(s). The final estimate of the unknown frequency f₀ is given by

{circumflex over (f)} ₀ =f _(I) +{circumflex over (f)} _(r)  (142)

where {circumflex over (f)}_(r) denotes the estimate of the frequency f_(r)=(f₀−f_(I)) by the AKF. Finally accurate estimates of the amplitude A and phase φ are obtained by correlating z_(c)(k) with the complex exponential function of frequency {circumflex over (f)}₀. Thus the estimates of the amplitude A denoted by Â and that of φ denoted by {circumflex over (φ)}, respectively, are given by

$\begin{matrix} {{{\hat{A} = {r}};{\hat{\phi} = {\arg (r)}}}{where}} & (143) \\ {r = {\frac{1}{N_{s}}{\sum\limits_{k = 1}^{N_{s}}{{z_{c}(k)}{\exp \left\lbrack {{- j}\; 2\pi \; k\; {\hat{f}}_{0}T_{s}} \right\rbrack}}}}} & (144) \end{matrix}$

FIG. 39 is a block diagram illustrating an architecture 3900 according to another embodiment of the disclosure for the case of very low signal-to-noise ratio. The input complex signal may be connected to the input of a memory block 3910 and to a switch S₁. The output of the switch can be selected either directly from the input or read from the memory 3910. The output of the switch S₁ may be connected to the input of switch S₂ and depending upon the state of switch S₂ and S₃ it may be routed to stage 1 estimator 3920, stage 2 estimator 3930, or stage 3 estimator 3940. With the position of switches S_(i) and S₂ as depicted in FIG. 39, the input signal z_(c)(k) may be shifted in frequency by δf=1Δf/N_(r) by a frequency converter 3916 with N_(r)=2^(κ) for an integer κ>0, 1=0, 1, . . . , N_(r)−1, Δf=F_(s)/M, and M is the FFT size. The output of the frequency converter 3916 is multiplied by (−1)^(k). The modified signal z_(m)(k) is input to serial to parallel S/P converter 3912 that splits the input signal z_(m)(k) into M outputs. The M outputs of the S/P converter are input to the M-point FFT block 3918 that evaluates the M-point FFT transform of the input and provides the FFT transform [z_(if)(0) z_(if)(1) . . . z_(if)(M−1)] at the output. For the case of i^(th) input block of size M, and for the case of 0 frequency shift, δf=0, the operation on z_(c)(k) resulting in the FFT transform is described by (117). The M outputs of the FFT block are multiplied by (1/M) exp [−j2πm/M]; m=0, 1, . . . , M−1 in multipliers 3919 and 3921 according to (116) illustrated for the case of i=0^(th) block, providing the correlation values r₀(i), . . . , r_(M-1)(i) at the outputs of multipliers.

When the correlation values are input to a cascade of mod square and averaging blocks 0, 1, . . . , M−1 3926 to 3936 providing the estimated average power P₀, P₁, . . . , P_(M-1) present during the N_(s) samples corresponding to N_(I) blocks of M samples each in the respective passbands of the M FFT filters, the FFT transform may be treated as a bank of M FFT filters. Referring to (114)-(117), the m^(th) output of the FFT block 3918 corresponds to shifting the input signal frequency by f_(m)=−B+mΔf, and averaging the frequency shifted signal over an interval of M samples. The two operations of frequency shifting and averaging are equivalent to bandpass filtering the signal with a complex bandpass filter of center frequency f_(m) and zero crossing bandwidth equal to 2Δf, and down converting the filtered signal to baseband. The power levels P₀, P₁, . . . , P_(M-1) at the output of M averaging blocks are input to the frequency selector 1 3938 block that selects N_(f) frequencies from the set of frequencies f_(m), m=0, 1, . . . , M−1 with the highest power levels. The selected frequencies {f₀ ^(s), f₁ ^(s), . . . , f_(N) _(f) ₋₁ ^(s)} are input to the respective AKF subsystems AKFSS0, . . . , AKFSS(N_(f)−1) of the stage 2 estimator 3930 as the initial frequency estimates for the respective AKFSS 0, . . . , N_(f)−1.

The block diagram of the adaptive Kalman filter subsystem (AKFSS) as discussed in reference to FIG. 2 may include the matrices given by Q(k−1)=ε_(Q)I₂ and R(k)=σ²I₂, σ²=σ_(n) ²/M, Q_(p)(k−1)=ε_(Qp)I₂ with ε_(Qp) possibly equal to 0, and F_(p)(k−1)=I₂. With continuing reference to FIG. 39, the input signal z_(c)(k) may be read from the memory 3910 and provided to a complex to real converter 3914 to generate signal z(k) at the output. The signal z(k) may be input to the AKF subsystems AKFSS 0, . . . , N_(f)−1 that also receive the frequencies {f₀ ^(s), f₁ ^(s), . . . , f_(N) _(f) ₋₁ ^(s)} as the initial frequency estimates with the initial parameter error covariance matrix to all the AKFSSs given by P_(p)(0/0)=(1/M²) I₂. The input signal z(k), k=1, 2, . . . , N_(s) is processed by the (N_(f)−1) AKFSSs and may generate the final estimates of frequencies f₀ ^(K), f₁ ^(K), . . . , f_(N) _(f) ⁻¹ ^(K), respectively. The reset input I_(R1) from the algorithm control block 3970 may provide the initialization for the AKFSS. At the end of processing by the AKFSSs, the frequency estimates f₀ ^(K), f₁ ^(K), . . . , f_(N) ₁ ₋₁ ^(K) may be provided to correlator blocks corr 0, . . . , corr (N_(f)−1) blocks which are selected via the switch S₄ from the memory 3910. The correlator blocks corr 0, . . . , corr (N_(f)−1) may estimate the average power present in the input signal at the frequencies f₀ ^(K), f₁ ^(K), . . . , f_(N) _(f) ₋₁ ^(K) respectively.

The frequencies f₀ ^(K), f₁ ^(K), . . . , f_(N) _(f) ₋₁ ^(K), along with the estimates of the average power levels P₀ ^(K), P₁ ^(K), . . . , P_(N) _(f) ₋₁ ^(K) present at these frequencies, are provided to the frequency selector 2 3950. The frequency selector 2 3950 selects and outputs the two frequencies f_(m) ₀ ^(K) and f_(m) ₁ ^(K) with highest average power levels P_(m) ₀ ^(K) and P_(m) ₁ ^(K) respectively, from the N_(f) input frequencies. The highest power level P_(m) ₀ ^(K) may be input to the threshold detector 1 3954(1) with associated threshold level P_(T1). The output of the threshold detector t₀ may be equal to 1 if P_(m) ₀ ^(K)≧P_(T) ₁ and may be 0 otherwise. The sum of P_(m) ₀ ^(K) and P_(m) ₁ ^(K) may be input to the threshold detector 2 3954(2) with associated threshold level P_(T2). The absolute value of the difference between f_(m) ₀ ^(K) and f m ₁ ^(K) may be input to the threshold detector 3 3954(3) where it may be compared to the resolution frequency f_(res) and the output of the threshold detector may be 1 if |f_(m) ₀ ^(K)−f_(m) ₁ ^(K)|≦f_(res) and 0 otherwise. The outputs of threshold detectors 2 and 3 3954(2), 3954(3) may be input to an AND gate 3960 that has output t₁ equal to 1 if both the inputs are 1 and 0 otherwise. Both the signals t₀ and t₁ may be provided to the algorithm control block 3970. The frequency f_(m) ₀ ^(K) and the average frequency 0.5(f_(m) ₀ ^(K)+f_(m) ₁ ^(K)) may be input to a frequency selector 3 3976. On the command I₅ from the algorithm control block 3970, the frequency selector 3 3976 may output one of the two frequencies at the output denoted by 0.

Based on the values of t₀ and t₁ the algorithm control block 3970 may generate the signal I₅ which has 3 possible values of 0, 1, and 2. Based on I₅, the frequency selector 3 selects frequency f_(m) ₀ ^(K) if t₀=1, selects frequency 0.5(f_(m) ₀ ^(K)+f_(m) ₁ ^(K)) if t₀=0 and t_(i)=1, and selects none if both t₀ and t₁ are equal to 0.

If either t₀=1 or t₁=1, the first and second steps of the estimator are complete. However if both t₀ and t₁ are equal to 0, the algorithm control block 3970 may select a different value of 1 or δf=1Δf/N_(r) and the estimation procedure is repeated until either the threshold condition is satisfied or all of N_(r) values of 6f have been processed. The frequency estimate f^(I) at the completion of step 1 and 2 may be taken as the final estimate of the unknown frequency f₀. However, a further refinement in the frequency estimate may be made by the stage 3 of the estimator block 3940.

FIG. 40 illustrates a block diagram of an example estimator 4000. The estimator 4000 may be implemented as the stage 3 estimator 3940 of FIG. 39. The complex signal z_(c)(k) is input to a frequency shifter that shifts the frequency of the signal z_(c)(k) by f^(I). The frequency estimate f^(I) at the output of the stage 2 of the estimator 3930 of FIG. 39 may be inputted to an oscillator 4010 of FIG. 40 to set the frequency of the oscillator to f^(I). The output of the oscillator 4010 may be connected to a first frequency shifter 4014. The output z_(s)(k) of the first frequency shifter 4014 given by (140) may be input to an averaging circuit 4020 that is configured to average the input z_(s)(k) over an interval of M samples and generates at its output an average signal z_(ac)(k) according to (141). The output of the averaging circuit 4020 may be input to a complex to real converter 4026 that may be configured to convert the complex signal into a real vector signal z_(a)(k) that may be inputted to an AKF block 4030. The sample time to the AKF block 4030 may be set to T_(sa)=MT_(s) with the initial estimates for the frequency ω⁰, and the parameter estimation error covariance matrix P(0/0) is set to 0 and I₂, respectively. The measurement error covariance matrix R(k) is set equal to (σ_(n) ²/M)I₂. The AKF block 4030 may process the N_(s)/M samples of the signal z_(a)(k) to generate the frequency estimate {circumflex over (f)}_(r)(k) that is the estimate of the error (f₀−f^(I)). Adding the frequency estimate f^(I) from stage 2 of the estimator to {circumflex over (f)}_(r)(k) provides the final estimate {circumflex over (f)}₀ for the unknown frequency f₀.

{circumflex over (f)}₀ may control the frequency of a second oscillator 4040 that generates the complex exponential signal at frequency {circumflex over (f)}₀ which may be input to the second frequency shifter 4050. The other input of the second frequency shifter 4050 may be with the complex signal z_(c)(k). The output of the second frequency shifter 4050 may be inputted to an averaging circuit 4054 that may average out the N_(s) samples as the output of the second frequency shifter 4050 and generate the output r according to (145). The output of the averaging circuit 4054 may be inputted to the absolute value | | and the arg( ) blocks, respectively, to provide the estimate of the amplitude Â and phase {circumflex over (φ)}, respectively of the input signal. When the expected RMS frequency estimation error is not insignificant as may be assessed from the C-R bound, instead of using the coherent averaging in the estimation of Â, a quasi coherent correlation may be used in the estimation of the amplitude A. A switch (not shown) at the input of stage 3 estimator 4000 may route the input z_(c)(k) to either the first or second frequency shifter 4014, 4050 as needed by the algorithm control block 3970 of FIG. 39.

Referring now to FIG. 41 a block diagram of an example correlation block 4100 according to embodiments of the disclosure is discussed. The corr m blocks of FIG. 39 may be implemented as correlation block 4100 of FIG. 41. The complex signal z_(c)(k) may be inputted to a frequency shifter 4110. The other input of the frequency shifter 4110 may be connected to the output of an oscillator 4120. The oscillator 4120 frequency may be set equal to f_(m) ^(K) as provided by the AKSSS m of FIG. 39. The output of the frequency shifter 4110 may be input to a first averaging circuit 4130 which may be configured to average the input over an interval of M samples generating r_(m) ^(K) at its output. The output signal r_(m) ^(K) may be inputted to a | |² block 4140 that provides the absolute value squared of the input. The | |² block 4140 output |r_(m) ^(K)|² may be inputted to a second averaging circuit 4150 that averages out its input over the N_(I) samples providing the output P_(m) ^(K) according to (137a). The reset input I_(R2) from the algorithm control block 3970 of FIG. 39 may provide the initialization for the averaging circuits 4130, 4150.

Estimation of Multiple Frequencies with the AKF-EFT-CD Algorithm

The AKF-EFT-CD algorithm can be applied to the case of the input signal that includes N signals of different frequencies as in (74). FIG. 42 shows the block diagram of the FFT-AKF-CD estimator 4200 for the estimation of multiple frequencies. In a first stage 4210 of the estimator, the interval Δf in (114) may be selected so that the minimum spacing among the input frequencies present in the input signal is higher than 2Δf and thus M=F_(s)/Δf is higher than 2N. As for the case of single frequency, the average power P_(m) may be estimated from (114) to (118) for m=0, 1, . . . , M−1. The number of frequencies N_(f) with the highest power P_(m) may be selected for the AKF estimation with N≦N_(f)≦M, wherein a relatively higher value of N_(f) may result in a relatively small probability of missing any of the input frequencies in the set of N_(f) selected frequencies. The set of frequencies thus selected are denoted by f_(m) ^(s), m=0, 1, . . . , N_(f)−1.

In a second stage 4220 of the estimator, the AKF algorithm is applied to the signal model described in (74) to (87) with N replaced by N_(f) therein. In the signal model, the (N_(f)-N) of the amplitudes A_(m) are zero as the number of frequencies N_(f) selected is higher than N. With f_(m) ^(K), m=0, 1, . . . , N_(f)−1 denoting the final frequency estimates obtained by the AKF corresponding to the N_(f) initial frequencies f_(m) ^(s), the average power P_(m) ^(K) at these frequencies is evaluated by equation (136). The N frequencies with the highest power estimates P_(m) ^(K) are selected as the frequency estimates are obtained. However, if any two frequency estimates are within the resolution frequency f_(res) of each other, with f_(res) equal to a predetermined fraction of Δf, then these two estimates are considered to be the estimates of a single frequency out of the N frequencies. The two such frequency estimates are averaged to provide the overall estimate of the frequency with the corresponding power estimates added to obtain the overall estimate of the power at that frequency. After such a combining of the powers, the N frequencies with the highest power estimates are selected as the N frequency estimates form the step 2 of the algorithm.

As an option, a threshold on the estimates of the power levels of the individual frequencies or a threshold on the total power in all of the N frequencies may be performed as for the case of single frequency estimation. If the threshold condition is not satisfied, then the procedure may be repeated with the M frequencies f_(m)=−B+mΔf, m=0, 1, . . . , M−1 offset by 1Δf/2^(κ) for a selected integer κ. with the offset integer taking possible values 1, 2, . . . , 2^(κ)−1, as for the case of the single frequency estimation, to obtain a new set of initial frequencies f_(m) ^(s), m=0, 1 . . . , N_(f)−1, running the AKF algorithm with these new estimates and obtaining the frequency estimates f_(m) ^(K), m=0, 1, . . . , N_(f)−1 and selecting N frequencies out of the N_(f) estimates based on their power estimates. The procedure may be repeated with different values of the offset integer i until the threshold condition is satisfied or all the 2^(κ)−1 values of 1 are exhausted.

In the third stage 4230(1)-(N) estimator, the estimates f_(m) ^(I) of each of the N frequencies obtained from the second stage 4220 are further individually refined. In this step, the signal z_(c)(k) may be multiplied by complex exponential function of frequency f_(m) ^(I) and the product averaged over an interval of M=F_(s)/Δf samples as in (140)-(141) to obtain the averaged signal z_(a,m)(k) that is applied to the AKF algorithm with the dimension of the state vector equal to 2 to obtain the estimate {circumflex over (f)}_(m) ^(r) of the residual frequency f_(m) ^(r) that is equal to the error in the frequency estimate. The final frequency estimate is given by (145) similar to the estimate in (142) for the single frequency case.

{circumflex over (f)} _(m) =f _(m) ^(I) +{circumflex over (f)} _(m) ^(r) ,m=1,2, . . . N  (145)

In the estimation of multiple frequencies, the signal z_(c)(k) may be segmented into multiple signals by a polyphase filter or the bank of FFT filters 4240 as in (94-96), and the AKF-FFT-CD algorithm is applied to each of these segments to reduce the dimension of the state vector in the AKF algorithm and thus the computational requirements.

AKF-FFT-CD Algorithm without the Last Step of Frequency Translation and Decimation

Simulation results are presented first for the case when the refinement step of frequency translation and decimation in equations (140) and (141) followed by the application of the AKF to the resulting signal is not performed. Instead the estimate based on selecting one of the N_(f) estimates obtained by the AKF on the basis of the correlation detection performed on these estimates is used as the final estimate. FIG. 43 shows an example in-phase component of the received complex signal z_(c)(k) with amplitude 1 volt and frequency of 121.2 Hz with an SNR of γ=−5 dB that appears like noise because the noise power is 3 times higher than the signal power. The AKF-FFT-CD algorithm is applied for the estimation of the frequency and amplitude with the number of simulation runs equal to 100 with the initial covariance matrix equal to 4I₂ as in the previous examples corresponding to the frequency range of [−200, 200] Hz. The value of M is selected equal to 20. FIG. 44 shows a plot of the frequency estimation error at the end of 80 samples for the 100 simulation runs corresponding to a cumulative SNR defined as γ_(c)=10 log(N_(s)γ) of 14 dB. The RMS frequency error from the 100 simulation runs is equal to 1.23 Hz compared to 0.4 Hz from the C-R bound. FIG. 45 plots the amplitude estimates obtained from equation (143) for the 100 simulation runs.

FIG. 46 plots the result for the case of SNR=−7 dB after processing 160 samples. The signal frequency selected randomly was −160.5 Hz for this case. The initial covariance matrix P_(p)(0/0) is equal to 2I₂ and the RMS frequency error is 0.70 Hz. However, if the two outliers are not included in the RMS error, the RMS error is only 0.32 Hz compared to the C-R bound of 0.17 Hz.

FIG. 47 plots the magnitude of the frequency estimation error for the case of SNR=−10 dB after processing 200 samples corresponding to γ_(c) equal to 13.0 dB. The signal frequency selected randomly was −138.5 Hz for this case. The RMS frequency estimation error for this case is 1.07 Hz after rejecting 1 outlier at 325 Hz or equivalently at −75 Hz. The RMS frequency error can be further reduced to bring it in line with the C-R bound by increasing the value of N_(f) and/or N_(r). However, in view of the relatively small value of the resulting RMS error, increase in the values of N_(f) or N_(r) may not be necessary for this case. For still lower SNRs, for example, at an SNR of −12 dB even after processing 500 samples corresponding to γ_(c) equal to 15 dB, there may be 5 outliers as shown in FIG. 48, the modulo F_(s) estimation error for the outliers as lies in the range of about 10 Hz to 90 Hz. However, increasing N_(f) to 10 from 5 and N_(r) to 8 from 4 reduces the number of outliers is reduced to 2 as shown in FIG. 49. Further increase in N_(f) and/or N_(r) may remove the remaining two outliers. FIG. 50 shows the estimation error after removing the 2 outliers with an RMS error of 0.88 Hz.

The estimation error can be further reduced by including the frequency translation and decimation step in (140) and (141) followed by the application of the AKF on the resulting signal. FIG. 51 plots the magnitude of the frequency estimation error for the case of SNR=−10 dB after processing 280 samples corresponding to γ_(c) equal to 14.5 dB. The signal frequency selected randomly was −42.6 Hz for this case. There is no outlier in this case. The RMS frequency estimation error for this case is equal to 0.74 Hz. Examination of FIG. 51 shows that unlike the case of Gaussian distribution, some of the errors are much higher than 3×0.74=2.2 Hz. For a Gaussian distribution with RMS value of 0.74 Hz, the probability of having a value with its magnitude higher than 2.2 Hz is 0.0026 and thus among 100 simulation runs the expected number of runs with the magnitude of the estimation error exceeding 2.2 Hz is 0.26. If the simulation runs with the magnitude of the estimation error exceeding 7 times the C-R bound of 0.11 Hz is excluded from the statistics then the resulting RMS error is only 0.12 Hz for the 93 runs. FIG. 52 shows the magnitude of the estimation error for those simulation runs for which the estimation error is less than 7 times the C-R bound of f_(crb)=0.11. Thus, except for a few simulation runs, the RMS estimation error is very close to the C-R bound. With the increase in the number of samples N_(s) the number of simulation runs for which the error exceeds 7f_(crb) is expected to reduce.

Applications

A frequency estimation system is one of the most important subsystems of communication, navigation, radar and various other engineering systems. In some cases, the efficient and precise estimation may be the critical component in the system design and may significantly limit the performance of these systems with respect to various metrics of performance. For example, in application to high dynamic GPS receivers, the ability to acquire and track the GPS carrier signal under dynamic conditions limits the performance and applicability of these receivers to various important applications. The present disclosure can drastically increase the performance capability of such systems over the existing ones.

In terms of communication systems, precise frequency and phase of the carrier are important in communication systems involving coherent modulation techniques such as MQAM and MPSK. In traditional communication applications, either the techniques that use square law loops or Costas type loops are used to derive the carrier frequency and phase from the modulated signal or a pilot signal is used which is tracked. The use of square law loops or Costas type loops results in significant loss in terms of phase noise of the reference carrier and phase ambiguity problems wherein there is phase ambiguity in the carrier phase equal to integer multiple of 2π/M for an MPSK signal. The use of pilot carrier results in a loss of signal power because a significant part of available power is used up in the pilot. The ability to provide fast and accurate frequency and phase estimates at very low SNRs can reduce the loss due to pilot carrier to an insignificant value. For example with the pilot signal 10 dB below the modulated signal power, the loss is only 0.45 dB, operation at 14 dB below results in only 0.17 dB loss compared to a loss of 1-3 dB in a traditional system. These numbers are based on the assumption that the carrier frequency uncertainty is nearly equal to the modulation signal bandwidth.

More recently precise and fast frequency acquisition and tracking have become very important with the evolution of the OFDM (Orthogonal Frequency Division Multiplexing) in mobile communication systems. The OFDM modulation scheme offers several advantages. For example, it has reduced problems of inter-symbol interference (ISI) caused by multipath propagation. It has superior performance in selective fading environments. Due to these advantages, OFDM has become part of various important standards such as WiMax. However, because the OFDM is based on the orthogonality among various subcarrier signals, it is very important that this orthogonality be maintained when these subcarriers are received at the receiver. However, the mobile wireless channels introduce frequency offsets which cause the disruption of the orthogonality among the subcarriers resulting in mutual interference among the various subcarriers. Therefore, it is very important to precisely estimate such frequency offsets and correct them to avoid the problem of intercarrier interference. The offsets may be functions of time and may be different for different subcarriers. Thus it is necessary that precise estimation of the frequency offset be made with minimum requirements on the estimation time and SNR which is also limited in systems involving error correction coding techniques. The disclosure can virtually eliminate the need for pilot carriers that are provided for the purpose of estimating the carrier offsets resulting in increased efficiency and yet are capable of providing precise estimates for these offsets.

In various radar systems, for example in Doppler and FM chirp radars, the ability to provide accurate acquisition and tracking in very low SNR conditions can result in a drastic reduction in transmit power resulting in “quiet radar.” In certain embodiments, the systems and methods disclosed herein may be applied to various multi-tracking applications including, but not limited to RADAR multi-target tracking, SONAR multi-target tracking, LIDAR multi-target tracking, or combinations thereof. The above only provides a few examples where the disclosure can be exploited. The disclosure can be exploited in diverse applications including satellite communication, terrestrial wireless communication, digital TV, radars, broadcasting, radio astronomy, aeronautical and space systems, structural vibrations, seismology, general instrumentation, etc.

In general, it will be apparent that the embodiments described herein may be implemented in many different embodiments of software, firmware, and/or hardware, for example, based on Field Programmable Gate Array (FPGA) chips or implemented in Application-Specific Integrated Circuits (ASICS). The software and firmware code may be executed by a computer or computing device comprising a processor (e.g., a DSP or any other similar processing circuit) including, for example, the computing device described below. The processor may be in communication with memory or another computer-readable medium comprising the software code. The software code or specialized control hardware that may be used to implement embodiments is not limiting. For example, embodiments described herein may be implemented in computer software using any suitable computer software language type, using, for example, conventional or object-oriented techniques. Such software may be stored on any type of suitable computer-readable medium or media, such as, for example, a magnetic or optical storage medium. According to various embodiments, the software may be firmware stored at an EEPROM and/or other non-volatile memory associated with a DSP or other similar processing circuit. The operation and behavior of the embodiments may be described without specific reference to specific software code or specialized hardware components. The absence of such specific references is feasible, because it is clearly understood that artisans of ordinary skill would be able to design software and control hardware to implement the embodiments based on the present description with no more than reasonable effort and without undue experimentation.

FIG. 53 shows an example of a computing device 5300 according to one embodiment. For the sake of clarity, the computing device 5300 is illustrated and described here in the context of a single computing device. However, it is to be appreciated and understood that any number of suitably configured computing devices can be used to implement a described embodiment. For example, in at least some implementations, multiple communicatively linked computing devices may be used. One or more of these devices can be communicatively linked in any suitable way such as via one or more networks. One or more networks can include, without limitation: the Internet, one or more local area networks (LANs), one or more wide area networks (WANs) or any combination thereof.

In the example of FIG. 53, the computing device 5300 comprises one or more processor circuits or processing units 5302, one or more memory and/or storage circuit component(s) 5304 and one or more input/output (I/O) devices 5306. Additionally, the computing device 5300 comprises a bus 5308 that allows the various circuit components and devices to communicate with one another. The bus 5308 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. The bus 5308 may comprise wired and/or wireless buses.

The processing unit 5302 may be responsible for executing various software programs such as system programs, application programs, and/or program modules/blocks to provide computing and processing operations for the computing device 5300. The processing unit 5302 may be responsible for performing various voice and data communications operations for the computing device 5300 such as transmitting and receiving voice and data information over one or more wired or wireless communications channels. Although the processing unit 5302 of the computing device 5300 is shown in the context of a single processor architecture, it may be appreciated that the computing device 5300 may use any suitable processor architecture and/or any suitable number of processors in accordance with the described embodiments. In one embodiment, the processing unit 5302 may be implemented using a single integrated processor. The processing unit 5302 may be implemented as a host central processing unit (CPU) using any suitable processor circuit or logic device (circuit), such as a general purpose processor. The processing unit 5302 also may be implemented as a chip multiprocessor (CMP), dedicated processor, embedded processor, media processor, input/output (I/O) processor, co-processor, microprocessor, controller, microcontroller, application-specific integrated circuit (ASIC), field programmable gate array (FPGA), programmable logic device (PLD), or other processing device in accordance with the described embodiments.

As shown, the processing unit 5302 may be coupled to the memory and/or storage component(s) 5304 through the bus 5308. The bus 5308 may comprise any suitable interface and/or bus architecture for allowing the processing unit 5302 to access the memory and/or storage component(s) 5304. Although the memory and/or storage component(s) 5304 may be shown as being separate from the processing unit 5302 for purposes of illustration, it is worthy to note that in various embodiments some portion or the entire memory and/or storage component(s) 5304 may be included on the same integrated circuit as the processing unit 5302. Alternatively, some portion or the entire memory and/or storage component(s) 5304 may be disposed on an integrated circuit or other medium (e.g., hard disk drive) external to the integrated circuit of the processing unit 5302. In various embodiments, the computing device 5300 may comprise an expansion slot to support a multimedia and/or memory card, for example.

The memory and/or storage component(s) 5304 represent one or more computer-readable media. The memory and/or storage component(s) 5304 may be implemented using any computer-readable media capable of storing data such as volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. The memory and/or storage component(s) 5304 may comprise volatile media (e.g., random access memory (RAM)) and/or non-volatile media (e.g., read only memory (ROM), Flash memory, optical disks, magnetic disks and the like). The memory and/or storage component(s) 5304 may comprise fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., a Flash memory drive, a removable hard drive, an optical disk). Examples of computer-readable storage media may include, without limitation, RAM, dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), read-only memory (ROM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory (e.g., NOR or NAND flash memory), content addressable memory (CAM), polymer memory (e.g., ferroelectric polymer memory), phase-change memory, ovonic memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, or any other type of media suitable for storing information.

The one or more I/O devices 5306 allow a user to enter commands and information to the computing device 5300, and also allow information to be presented to the user and/or other components or devices. Examples of input devices include data ports, analog to digital converters (ADCs), digital to analog converters (DACs), a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner and the like. Examples of output devices include data ports, ADCs, DACs, a display device (e.g., a monitor or projector, speakers, a printer, a network card). The computing device 5300 may comprise an alphanumeric keypad coupled to the processing unit 5302. The keypad may comprise, for example, a QWERTY key layout and an integrated number dial pad. The computing device 5300 may comprise a display coupled to the processing unit 5302. The display may comprise any suitable visual interface for displaying content to a user of the computing device 5300. In one embodiment, for example, the display may be implemented by a liquid crystal display (LCD) such as a touch-sensitive color (e.g., 76-bit color) thin-film transistor (TFT) LCD screen. The touch-sensitive LCD may be used with a stylus and/or a handwriting recognizer program.

The processing unit 5302 may be arranged to provide processing or computing resources to the computing device 5300. For example, the processing unit 5302 may be responsible for executing various software programs including system programs such as operating system (OS) and application programs. System programs generally may assist in the running of the computing device 5300 and may be directly responsible for controlling, integrating, and managing the individual hardware components of the computer system. The OS may be implemented, for example, as a Microsoft® Windows OS, Symbian OS™, Embedix OS, Linux OS, Binary Run-time Environment for Wireless (BREW) OS, JavaOS, or other suitable OS in accordance with the described embodiments. The computing device 5300 may comprise other system programs such as device drivers, programming tools, utility programs, software libraries, application programming interfaces (APIs), and so forth.

In various embodiments disclosed herein, a single component may be replaced by multiple components, and multiple components may be replaced by a single component to perform a given function or functions. Except where such substitution would not be operative, such substitution is within the intended scope of the embodiments.

While various embodiments have been described herein, it should be apparent that various modifications, alterations, and adaptations to those embodiments may occur to persons skilled in the art with attainment of at least some of the advantages. The disclosed embodiments are therefore intended to include all such modifications, alterations, and adaptations without departing from the scope of the embodiments as set forth herein.

Embodiments may be provided as a computer program product including a non-transitory machine-readable storage medium having stored thereon instructions (in compressed or uncompressed form) that may be used to program a computer (or other electronic device) to perform processes or methods described herein. The machine-readable storage medium may include, but is not limited to, hard drives, floppy diskettes, optical disks, CD-ROMs, DVDs, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of media/machine-readable medium suitable for storing electronic instructions. Further, embodiments may also be provided as a computer program product including a transitory machine-readable signal (in compressed or uncompressed form). Examples of machine-readable signals, whether modulated using a carrier or not include, but are not limited to, signals that a computer system or machine hosting or running a computer program can be configured to access, including signals downloaded through the Internet or other networks. For example, the distribution of software may be an Internet download.

Although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the disclosure is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the embodiments. Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, while other embodiments do not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements, and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and/or steps are included or are to be performed in any particular embodiment. 

That which is claimed:
 1. A method, comprising: storing time series samples of an input signal on at least one memory; determining, by one or more processors, a first estimate of one or more frequencies of the input signal, the first estimate comprising a first predetermined number of frequencies; determining, by the one or more processors, a second estimate of the one or more frequencies of the input signal, the second estimate comprising a second predetermined number of frequencies, wherein the second predetermined number of frequencies is less than the first predetermined number of frequencies; determining, by the one or more processors, an error estimate associated with each of the second estimates of the one or more frequencies of the input signal; determining, by the one or more processors, a third estimate of the one or more frequencies of the input signal based at least in part on the determined error estimates.
 2. The method of claim 1, wherein the first estimate of the one or more frequencies of the input signal is performed by a first stage estimator, the first stage estimator comprising a first frequency selector.
 3. The method of claim 1, wherein determining the first estimate of one or more frequencies associated with the input signal comprises selecting a subset of frequencies for which average power estimates have been determined based at least in part on the average power estimates.
 4. The method of claim 3, wherein selecting a subset of frequencies for which average power estimates have been determined comprises selecting the first predetermined number of frequencies for which the determined average power estimate is highest.
 5. The method of claim 1, wherein providing the first estimate of one or more frequencies associated with the input signal comprises applying the input signal to a bank of fast Fourier transform (FFT) filters.
 6. The method of claim 1, wherein the second estimate of the one or more frequencies of the input signal is performed by a second stage estimator, the second stage estimator comprising a multi-frequency adaptive Kalman filter.
 7. The method of claim 6, wherein the second stage estimator further comprises a plurality of correlators, each correlator corresponding to a respective first estimate of one or more frequencies.
 8. The method of claim 7, wherein each correlator is configured to determine an estimated power level corresponding to the respective first estimate of one or more frequencies.
 9. The method of claim 1, wherein the second stage estimator further comprises a second frequency selector and at least one threshold detector.
 10. The method of claim 1, wherein determining the error estimate is performed by a third stage estimator comprising at least one oscillator and at least one adaptive Kalman filter.
 11. A system, comprising: a memory configured to store time series samples of an input signal; a first stage estimator, implemented by one or more processors and configured to provide a first set of frequency estimates associated with the input signal; a second stage estimator, implemented by the one or more processors and comprising a plurality of adaptive Kalman filter subsystems, the second stage estimator configured to provide an estimate of a signal frequency of the input signal based at least in part on the time series of the electrical signal, wherein each of the plurality of adaptive Kalman filter subsystems provide a corresponding respective frequency estimate of the input signal and wherein an initial estimate of the frequency estimate corresponding to each of the adaptive Kalman filter subsystems is based at least in part on the first set of frequency estimates associated with the input signal.
 12. The system of claim 11, wherein each of the plurality of adaptive Kalman filter subsystems comprise: a multi-frequency adaptive Kalman filter configured to receive the time series samples of the input signal and generate a frequency estimate time series associated with the input signal; a plurality of correlation threshold detectors, each correlation frequency detector configured to receive a subset of the at least one frequency estimate time series and generating a corresponding respective correlation signal; an algorithm controller configured to generate at least one control signal based at least in part on at least one of the plurality of correlation signals and provide the at least one control signal to at least one of the (i) memory, or (ii) the multi-frequency adaptive Kalman filter.
 13. The system of claim 11, wherein providing a first set of frequency estimates associated with the electrical signal comprises bandpass filtering of the input signal.
 14. The system of claim 11, wherein providing a first set of frequency estimates associated with the input signal comprises selecting a subset of frequencies for which average power estimates have been determined based at least in part on the average power estimates.
 15. The system of claim 14, wherein selecting a subset of frequencies for which average power estimates have been determined comprises selecting a predetermined number of frequencies for which the determined average power estimate is highest.
 16. The system of claim 11, wherein providing a first set of frequency estimates associated with the input signal comprises applying the electrical signal to a bank of fast Fourier transform (FFT) filters.
 17. The system of claim 11, wherein the first stage estimator further comprises at least one of: (i) an oscillator; (ii) a serial to parallel converter; (iii) a fast Fourier transform filter; or (iv) a frequency selector.
 18. The system of claim 11, wherein the second stage estimator further comprises a plurality of correlators, each correlator corresponding to a respective adaptive Kalman filter subsystem.
 19. The system of claim 18, wherein each correlator is configured to determine an estimated power level corresponding to the respective frequency estimate of the corresponding adaptive Kalman filter subsystem.
 20. The system of claim 11, wherein the second stage estimator further comprises a second frequency selector and at least one threshold detector.
 21. The system of claim 11, further comprising a third stage estimator comprising at least one oscillator and at least one adaptive Kalman filter and configured to generate a second estimate of the signal frequency of the input signal.
 22. At least one non-transitory computer-readable medium comprising computer-executable instructions that, when executed by one or more processors, executes a method comprising: determining, by one or more processors, a first estimate of one or more frequencies of the input signal, the first estimate comprising a first predetermined number of frequencies; determining, by the one or more processors, a second estimate of the one or more frequencies of the input signal, the second estimate comprising a second predetermined number of frequencies, wherein the second predetermined number of frequencies is less than the first predetermined number of frequencies; determining, by the one or more processors, an error estimate associated with each of the second estimates of the one or more frequencies of the input signal; determining, by the one or more processors, a third estimate of the one or more frequencies of the input signal based at least in part on the determined error estimates.
 23. The non-transitory computer-readable medium of claim 22, wherein the first estimate of the one or more frequencies of the input signal is performed by a first stage estimator, the first stage estimator comprising a first frequency selector.
 24. The non-transitory computer-readable medium of claim 22, wherein determining the first estimate of one or more frequencies associated with the input signal comprises selecting a subset of frequencies for which average power estimates have been determined based at least in part on the average power estimates.
 25. The non-transitory computer-readable medium of claim 22, wherein the second estimate of the one or more frequencies of the input signal is performed by a second stage estimator, the second stage estimator comprising a multi-frequency adaptive Kalman filter.
 26. The non-transitory computer-readable medium of claim 25, wherein the second stage estimator further comprises a plurality of correlators, each correlator corresponding to a respective first estimate of one or more frequencies.
 27. The non-transitory computer-readable medium of claim 22, wherein determining the error estimate is performed by a third stage estimator comprising at least one oscillator and at least one adaptive Kalman filter. 